2010-05-05 23 views
2

有没有办法让DataContractSerializer以与通过SOAP传输时相同的方式将[MessageContract]序列化?DCS与MessageContract序列化

我有出现在丝的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; } 
    } 

是否有办法使DCS以序列化消息的方式与WCF创建SOAP消息时的方式相同è?

回答

0

我想你正在寻找Data Contract Surrogates。顺便说一下,您可以使用DataContractSerializer的构造函数来设置名称空间和根名称。

+0

数据合同代理不是我想要的。我想创建SOAP XML,就像WCF一样。 – kurtaj 2010-05-26 21:15:44