タイプの何かを返すWebサービスがありますMyData
。
public class MyData
{
public string Name;
[XmlElement("item")]
public Object[] DataItems;
}
配列のタイプはいくつかのタイプである可能性があるため、私は以前に使用Object[]
しました。DataItems
このメソッドを使用して正常に送信できる2つの異なるクラスがあります。下記参照。
clientResults
満たされたデータセットです。
MyData returnResult = new MyData();
MyFirstClass[] resultData = new MyFirstClass[clientResults.Tables[0].Rows.Count];
resultData.MyFirstClassProperty1 = "Blah Blah";
resultData.MyFirstClassProperty2 = "Blah Blah";
returnResult.DataItems = resultData.
簡単に変更MyFirstClass
しMySecondClass
て独自のプロパティを設定することができ、Webサービスは両方のクラスを適切にシリアル化し、すべてのクラスが満足していました。
ただし、関数によって返されるXMLを渡さなければならない必要がありDataSet.GetXml()
ます。
当然、私がしたことは
XmlDocument xdoc = new XmlDocument();
xdoc.LoadXml(clientResults.GetXml());
resultData.DataItems = new XmlDocument[] { xdoc };
しかし、これは例外を投げています
System.InvalidOperationException: There was an error generating the XML document. ---> System.InvalidOperationException: The type System.Xml.XmlDocument may not be used in this context.
だから私が思ったのは、XmlNodeで試してみましょう。
XmlDocument xdoc = new XmlDocument();
xdoc.LoadXml(clientResults.GetXml());
XmlNode xElement = xdoc.SelectSingleNode("/");
result.DataItems = new XmlNode[] { xElement };
それでも同じ例外をスローします。何が間違っている可能性がありますか?
Webサービスを介してXMLを適切に渡すにはどうすればよいですか?