Uzak bir wcf servisi ile çalışırken bazen gelen/giden mesajı ilgili iletim protokolü(http ya da daha üst düzey bir protokol olan soap) standartlarına göre görüntülememiz gerekebiliyor.
Bu mesajları görüntülemenin yaygın iki yolu var. Biri network trafiğini dinlemek. Bunu yapmak için bir network dinleyici programına(Charles, Fiddler, Wireshark ve benzeri) ihtiyacımız var.
Şimdi benim anlatacağım diğer yol ise, bir Message Inspector implemente etmek.
System.ServiceModel.Dispatcher isim alanında yer alan IClientMessageInspector arayüzünden türetilen bu Message Inspector’ın AfterReceiveReply ve BeforeSendRequest metotlarını kullanarak mesajları inceleyebiliriz.
Bu mesajlar sadece kod problemlerini çözmek için kullanılabileceği gibi log amaçlı olarak bir yerlere kaydedilebilir. Bazı durumlarda bu mesajların gitmesini engellemek isteyebilirsiniz.
Bir Message Inspector implemente etmeye çalışırken çeşitli sebeplerle çalışmayan bir sürü koda rastladım. Çalışan bir kodu repo haline getirdim. Bu kodu projenize ekleyerek kullanabilirsiniz.