【问题标题】:WCF REST result XMLWCF REST 结果 XML
【发布时间】:2011-08-24 23:08:59
【问题描述】:

我有 WCF 休息服务。它有一个返回对象列表的方法。对象类型设置为 DataContract 并具有 DataMembers。现在效果很好,我可以通过我的方法将对象列表作为 XML 获取。它很棒,很好。

我的问题是:有没有办法在从方法返回结果 XML 之前获取它?那么,我的方法中的 XML 是否可以与通过 REST 调用我的方法时获得的完全相同?

.net4/vs2010

【问题讨论】:

    标签: .net xml wcf rest serialization


    【解决方案1】:

    Alfonso 的回答是有点正确,但您提到您使用的是DataContractDataMemberXmlSerializer 类不适用于数据合约。相反,您正在寻找的是DataContractSerializer。它的用法非常相似,但看起来像这样:

    DataContractSerializer serializer = new DataContractSerializer(typeof(YourResultType));
    StringBuilder stringBuilder = new StringBuilder();
    
    using(XmlWriter xmlWriter = XmlWriter.Create(stringBuilder))
    {
        serializer.WriteObject(xmlWriter, someInstanceOfYourResultType);
    }
    
    // use stringBuilder.ToString() to get the XML
    

    【讨论】:

      【解决方案2】:

      您可以在返回之前使用 XmlSerializer 将结果保存到 xml 字符串。

      XmlSerializer ser = new XmlSerializer(typeof(YourResultType));
      StringBuilder sb = new StringBuilder();
      StringWriter sw = new System.IO.StringWriter(sb);
      ser.Serialize(sw, yourResult);
      // Use sb.ToString()
      

      【讨论】:

      • 谢谢阿方索,我会检查的! :)
      • XmlSerializer 不会遵守 Tom 提到他正在使用的 DataContract/DataMember 属性,他需要为此使用 DataContractSerializer。
      猜你喜欢
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-20
      • 2015-10-25
      • 1970-01-01
      相关资源
      最近更新 更多