从WCF服务返回XML

时间:2009-07-22 11:47:17

标签: .net xml wcf datagridview

我正在创建一个WCF Web服务,其中一个方法(在Service中公开)以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中使用这些数据。

1 个答案:

答案 0 :(得分:5)

您永远不应该将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;
    }
}