我有一些从XML Serializer生成的xml。如何将其转换为SOAP XML?...我正在尝试使用ASP.NET C#...请帮帮我
答案 0 :(得分:1)
您只需创建一个可由XMLSerializer和SOAPFormatter序列化的数据类。这可能意味着您将需要具有XMLSerializer的公共属性的公共类,并且您需要为SOAPFormatter添加 Serializable 属性。否则,它非常直接。
我创建了一个天真的例子来说明我的意思:
[Serializable]
public class MyData
{
public int MyNumber { get; set; }
public string Name { get; set; }
}
class Program
{
static void Main(string[] args)
{
using (MemoryStream stream = new MemoryStream())
{
MyData data = new MyData() { MyNumber = 11, Name = "StackOverflow" };
XmlSerializer serializerXML = new XmlSerializer(data.GetType());
serializerXML.Serialize(stream, data);
stream.Seek(0, SeekOrigin.Begin);
data = (MyData)serializerXML.Deserialize(stream);
// We're cheating here, because I assume the SOAP data
// will be larger than the previous stream.
stream.Seek(0, SeekOrigin.Begin);
SoapFormatter serializerSoap = new SoapFormatter();
serializerSoap.Serialize(stream, data);
stream.Seek(0, SeekOrigin.Begin);
data = (MyData)serializerSoap.Deserialize(stream);
}
}
}
答案 1 :(得分:1)
没有“原始XML”和“SOAP XML”这样的东西。
你想要完成什么?如果您只是尝试将XML作为Web服务的响应返回,那么只需将其放入XmlDocument或XDocument中,然后返回根元素:
[WebMethod]
public XmlElement ReturnXml()
{
XmlDocument doc = new XmlDocument();
doc.Load(fromSomewhere);
return doc.DocumentElement;
}
答案 2 :(得分:0)
听起来你想把你的xml包装成一个肥皂信封?如果有,请尝试this