【问题标题】:Returning XML From a WCF Service从 WCF 服务返回 XML
【发布时间】:2009-07-22 11:47:17
【问题描述】:

我正在创建一个 WCF Web 服务,其中一种方法(在服务中公开)以 XML 格式返回数据,如下所示:

    public string QueryDirectoryEntry()
    {

        XmlDocument doc = new XmlDocument();
        doc.Load(@"c:\" + FILE_NAME);
        return doc.InnerXml;
    }

如果客户端调用这个方法他们的服务返回 XML 格式的数据,我想在 datagridview 控件中绑定这个 XML。

XML 数据实际上包含List<MyStruct>

class MyStruct
{
  Name..
  ID...
}

XML:

<root>
  <MyStruct>
    <Name>abc</Name>
    <ID>1</ID>
  </MyStruct>
  <MyStruct>
    <Name>abc</Name>
    <ID>2</ID>
  </MyStruct>
</root>

我希望数据采用 XML 格式,以便每个应用程序都可以在 C# 或 Java 中使用这些数据。

【问题讨论】:

  • 在重新阅读这个问题时,我看到 OP 可能认为他必须返回 XML 以便 Java 或其他非 .NET 应用程序使用它.事实并非如此。如果他刚刚返回了List&lt;MyStruct&gt;,那么 WCF 会为他将其序列化为 XML。

标签: .net xml wcf datagridview


【解决方案1】:

您不应该将 XML 作为字符串返回或操作。而是将其作为 XmlElement 返回:

[ServiceContract]
public interface IReturnRealXml {
    [OperationContract]
    XmlElement QueryDirectoryEntry();
}

public class ReturnRealXmlNotStrings : IReturnRealXml {

    public XmlElement QueryDirectoryEntry()
    {
        XmlDocument doc = new XmlDocument();
        doc.Load(@"c:\" + FILE_NAME);
        return doc.DocumentElement;
    }
}

【讨论】:

  • 感谢约翰纠正我。但是你能告诉我如何实现上述功能吗?
  • 我填了一点。这样更好吗?
  • 抱歉延迟回复...感谢约翰的回复
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多