【问题标题】:How do I serialize a .Net object to a SOAP string?如何将 .Net 对象序列化为 SOAP 字符串?
【发布时间】:2015-08-15 02:38:58
【问题描述】:

我正在尝试将我的 C# 对象序列化为一个字符串,然后我可以使用 WebClient 将其传递给 Web 服务。我成功地将对象转换为 XML 字符串,但它不是 SOAP。如何向其中添加 SOAP 格式化程序?

这是我的代码:

public class Test
{
    public static void Run()
    {
        var mmSync = new MMSync()
        {
            UserName = "myUserName",
            Password = "myPassword"
        };

        DataContractSerializer s = new DataContractSerializer(typeof(MMSync));
        var output = string.Empty;

        using (MemoryStream ms = new MemoryStream())
        {
            s.WriteObject(ms, mmSync);
            output = Encoding.ASCII.GetString(ms.ToArray(), 0, (int)ms.Length);
        }
    }
}

[DataContract]
public class MMSync
{
    [DataMember]
    public string UserName { get; set; }

    [DataMember]
    public string Password { get; set; }
}

【问题讨论】:

  • 什么是“SOAP 字符串”?您想要一个可立即发布的 SOAP XML 请求正文吗?为什么?为什么不使用 WCF?
  • 因为我不能在这个项目中因为太长的原因在这里发布。
  • 您有 SOAP Web 服务的 WSDL 吗?

标签: c# serialization soap


【解决方案1】:

让我提出一个替代方案:向您的项目添加一个服务引用。这将创建一个代理类自动为您完成所有 SOAP 编码/解码和所有 HTTP 通信。

详情:

有关“网络引用”和“服务引用”之间的区别以及更详细信息的更多信息,请参阅以下相关问题:

【讨论】:

  • 相信我,我很乐意这样做。但由于太长无法在此处发布的原因,这是不可能的。
  • @Scottie:啊,好的,我明白了。我会在这里保留我的答案,也许它会帮助其他有同样问题的人。
猜你喜欢
  • 1970-01-01
  • 2010-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-15
  • 2011-01-26
  • 2016-09-23
相关资源
最近更新 更多