如何从asmx Web服务返回纯XML?

Use*_*ser 5 xml asp.net web-services xml-serialization asmx

我想要一个带有GetPeople()方法的asmx webservice,它返回以下XML(不是SOAP响应):

<People>

    <Person>
        <FirstName>Sara</FirstName>
        <LastName>Smith</LastName>
    </Person>

    <Person>
        <FirstName>Bill</FirstName>
        <LastName>Wilson</LastName>
    </Person>

</People>
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

Use*_*ser 2

我发现我可以将该方法的返回类型设置为 XmlDocument。这似乎有效。

[WebMethod]
public XmlDocument ReturnXml()
{
    XmlDocument dom = new XmlDocument();

    XmlElement people = dom.CreateElement("People");
    dom.AppendChild(people);

    XmlElement person = dom.CreateElement("Person");
    people.AppendChild(person);

    XmlElement firstName = dom.CreateElement("FirstName");
    person.AppendChild(firstName);

    XmlText text = dom.CreateTextNode("Bob");
    firstName.AppendChild(text);



    // load some XML ...
    return dom;
}
Run Code Online (Sandbox Code Playgroud)

  • 永远、永远不要依赖那个测试页。除此之外,它不调用使用 SOAP 的方法! (4认同)