我有2个Web服务。一个Web服务接受一个类型为A的对象。在Visual Studio中使用“添加服务引用”时,它将创建一个名为AType
的类。
我的第二个Web服务的输入方法(称为x(...))实际上接受类型A的参数,但由于某种原因,WSDL不正确,并将其声明为## any。
<any namespace="##any" processContents="lax" minOccurs="1" maxOccurs="1">
这意味着在我的代码中,我将必须从XmlDocument创建一个XmlElement:
private static XmlDocument doc = new XmlDocument();
XmlElement e = doc.CreateElement("some-name", "some-uri");
有没有一种方法可以将AType转换为XmlElement?我必须先回到字符串吗?
作为替代方案,我正在考虑合并两个Web服务WSDL文件...
答案 0 :(得分:0)
我终于发现以下代码完全符合我的期望:
public static XmlElement Serialize(MyObject someClassInstance)
{
XmlSerializer serializer = new XmlSerializer(typeof(MyObject));
XmlDocument doc = new XmlDocument();
XPathNavigator nav = doc.CreateNavigator();
XmlWriter writer = nav.AppendChild();
serializer.Serialize(writer, someClassInstance);
writer.WriteEndDocument();
writer.Flush();
writer.Close();
return doc.DocumentElement;
}