【发布时间】:2010-07-15 14:23:32
【问题描述】:
我有一些从 XML Serializer 生成的 xml ..如何将其转换为 SOAP XML ?...我正在尝试使用 ASP.NET C#...请帮帮我
【问题讨论】:
-
我认为您需要提供有关 Web 服务或预期 XML 格式的更多信息。
我有一些从 XML Serializer 生成的 xml ..如何将其转换为 SOAP XML ?...我正在尝试使用 ASP.NET C#...请帮帮我
【问题讨论】:
您只需要创建一个可由 XMLSerializer 和 SOAPFormatter 序列化的数据类。这可能意味着您需要一个具有 XMLSerializer 的公共属性的公共类,并且您需要为 SOAPFormatter 添加 Serializable 属性。否则,它非常简单。
我创建了一个 Naive 示例来说明我的意思:
[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);
}
}
}
【讨论】:
没有“原始 XML”和“SOAP XML”之类的东西。
你想完成什么?如果您只是尝试将 XML 作为来自 Web 服务的响应返回,那么只需将其放入 XmlDocument 或 XDocument,然后返回根元素:
[WebMethod]
public XmlElement ReturnXml()
{
XmlDocument doc = new XmlDocument();
doc.Load(fromSomewhere);
return doc.DocumentElement;
}
【讨论】:
听起来你想把你的 xml 包装成一个肥皂信封?如果是这样,请尝试this
【讨论】: