実行時に (たとえば、操作動作を使用して) 操作 (DataContractSerializer/NetDataContractSerializer/XmlSerializer など) で使用されるデータ コントラクト シリアライザーを取得する機会はありますか。私が達成したいのは、現在接続されているシリアライザーを使用してメッセージを (メッセージ インスペクターで) シリアル化し、結果を比較する診断コードを作成することです。
ありがとう、パヴェル
実行時に (たとえば、操作動作を使用して) 操作 (DataContractSerializer/NetDataContractSerializer/XmlSerializer など) で使用されるデータ コントラクト シリアライザーを取得する機会はありますか。私が達成したいのは、現在接続されているシリアライザーを使用してメッセージを (メッセージ インスペクターで) シリアル化し、結果を比較する診断コードを作成することです。
ありがとう、パヴェル
サービス側でメッセージ インスペクターを作成する方法を見てみましょう。そこからメッセージを取得して、そのエンコーダーを確認できます。エンコーダーは、そのシリアライズ方法を教えてくれます。これは機能するコードではありませんが、次のようになります。IDispatchMessageInspector.AfterReceiveRequest( ref Message request....){ if ( request.MessageEncoder is typeof(BinaryMessageEncoder) //do stuff.....}