3

DataContractSerializer[MessageContract]をSOAP経由で送信したときと同じようにシリアル化する方法はありますか?

WCF呼び出しのネットワーク上に次のように表示されるクラスがあります。

<TestRequest xmlns="http://webservices.test.com/ServiceTest/1.1">
  <Name>Just Me</Name>
</TestRequest>

DCSを使用してシリアル化すると、次のようになります。

<TestRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance" z:Id="1" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/" xmlns="http://schemas.datacontract.org/2004/07/ServiceTest">
  <_x003C_Name_x003E_k__BackingField z:Id="2">Just Me</_x003C_Name_x003E_k__BackingField>
</TestRequest>

この不整合は、クラスがデータコントラクトではなくメッセージコントラクトとしてマークアップされているためだと確信しています。

    [MessageContract]
    [Serializable]
    public class TestRequest
    {
        [MessageBodyMember]
        public string Name { get; set; }
    }

WCFがSOAPメッセージを作成するときと同じ方法でDCSにメッセージをシリアル化させる方法はありますか?

4

1 に答える 1

0

Data Contract Surrogatesを探していると思います。ところで、DataContractSerializer のコンストラクターを使用して、名前空間とルート名を設定できます。

于 2010-05-05T17:14:54.467 に答える