gpt4 book ai didi

c# - 使用 DCS 的 MessageContract 序列化

转载 作者:行者123 更新时间:2023-11-30 18:44:27 25 4
gpt4 key购买 nike

有没有办法让 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; }
}

有没有办法让 DCS 以与 WCF 创建 SOAP 消息时相同的方式序列化消息?

最佳答案

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

关于c# - 使用 DCS 的 MessageContract 序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2775142/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com