我希望能够将序列化的 xml 类加载到 Soap Envelope。我开始了,所以我没有填充内脏,所以它看起来像:
<Envelope
xmlns="http://schemas.xmlsoap.org/soap/envelope/" />
我希望它看起来像:
<Envelope
xmlns="http://schemas.xmlsoap.org/soap/envelope/" ></Envelope>`
我写的课是这样的:
[System.SerializableAttribute()]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://schemas.xmlsoap.org/soap/envelope/")]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "http://schemas.xmlsoap.org/soap/envelope/",ElementName="Envelope", IsNullable = true)]
public class TestXmlEnvelope
{
[System.Xml.Serialization.XmlElement(ElementName="Body", Namespace="http://schemas.xmlsoap.org/soap/envelope/")]
public System.Collections.ArrayList Body = new System.Collections.ArrayList();
} //class TestXmlEnvelope`
我以这个为例,因为其他人可能想要它在一个单独的元素中。我确信这一定很简单,但遗憾的是我不知道正确的关键字。
一如既往地感谢您的帮助。
[编辑] 当我尝试使用此指令时出现错误
System.Xml.Serialization.XmlSerializer xmlout = new System.Xml.Serialization.XmlSerializer(typeof(TestXmlEnvelope));
System.IO.MemoryStream memOut = new System.IO.MemoryStream();
xmlout.Serialize(memOut, envelope, namespc);
Microsoft.Web.Services.SoapEnvelope soapEnv = new Microsoft.Web.Services.SoapEnvelope();
soapEnv.Load(memOut);
它给了我错误“找不到根元素”。
[编辑]我修复了错误,问题是在我序列化对象后我没有设置memOut.Position = 0。我仍然希望这个问题可以帮助其他可能想要这样做的人。