Aracılığıyla paylaş


Custom Message Formatters

İletideki içerik genellikle XML biçimindedir ve bu genellikle bir uygulama için uygun bir biçim değildir. Uygulamalar nesneleri işleyip özelliklerini alır ve ayarlar. Windows Communication Foundation (WCF), bir nesneyi uygulama tarafından kolayca işlenen bir Message nesneye dönüştürmek için Veri Sözleşmesi'ni kullanır. Bu işlemler serileştirme ve seri durumdan çıkarma olarak adlandırılır. Bu terimlerin, ileti kablo biçiminden iletiye ve iletiden aktarım katmanı tarafından gerçekleştirilen serileştirme ve seri durumdan çıkarma işlemlerini açıklamak için de kullanıldığına dikkat edin. Bu, ilgisiz bir işlemdir.

İletiler ve nesneler arasında, Veri Sözleşmesi yoluyla gerçekleştiremeyeceğiniz özel bir dönüştürme uygulamanız gerekiyorsa özel ileti biçimlendirici kullanabilirsiniz. Bunu yapmak için istemcide veya hizmette belirli bir sözleşme işleminin yürütme davranışını değiştirin veya genişletin.

İstemcideki Özel İleti Biçimlendiricileri

Arabirim, IClientMessageFormatter istemci uygulamaları için iletilerin nesnelere ve nesnelere dönüştürülmesi için kullanılan yöntemleri tanımlar.

Bu arabirimi uygulamanız gerekir. önce bir iletiyi seri durumdan çıkarmak için yöntemini geçersiz kılın DeserializeReply . Bu yöntem, gelen bir ileti alındıktan sonra ancak istemci işlemine gönderilmeden önce çağrılır.

Ardından, bir nesneyi seri hale getirmek için yöntemini geçersiz kılın SerializeRequest . Bu yöntem, giden ileti gönderilmeden önce çağrılır.

Özel biçimlendiriciyi hizmet uygulamasına eklemek için, bir işlem davranışı kullanarak nesnesini özelliğine atayın IClientMessageFormatterFormatter . Davranışlar hakkında bilgi için bkz . Çalışma Zamanını Davranışlarla Yapılandırma ve Genişletme.

Hizmette Özel İleti Biçimlendiricileri

Arabirim, IDispatchMessageFormatter bir Message nesneyi bir işlem için parametrelere ve parametrelerden hizmet uygulamasındaki bir Message nesneye dönüştüren yöntemleri tanımlar.

Bu arabirimi uygulamanız gerekir. önce bir iletiyi seri durumdan çıkarmak için yöntemini geçersiz kılın DeserializeReply . Bu yöntem, gelen bir ileti alındıktan sonra ancak istemci işlemine gönderilmeden önce çağrılır.

Ardından, bir nesneyi seri hale getirmek için yöntemini geçersiz kılın SerializeRequest . Bu yöntem, giden ileti gönderilmeden önce çağrılır.

Özel biçimlendiriciyi hizmet uygulamasına eklemek için, bir işlem davranışı kullanarak nesnesini özelliğine atayın IDispatchMessageFormatterFormatter . Davranışlar hakkında bilgi için bkz . Çalışma Zamanını Davranışlarla Yapılandırma ve Genişletme.

Ayrıca bkz.