为Web Service创建XML字符串

我正在向一个Web服务发送一个请求,该服务需要一个包含XML的字符串,我已经提供了一个XSD。

我已经运行了xsd.exe并基于此创建了一个类,但不确定创建要发送的xml字符串的最佳方法,例如流,XMLDocument或某种forms的序列化。

UPDATE

我在这里找到了这个

public static string XmlSerialize(object o) { using (var stringWriter = new StringWriter()) { var settings = new XmlWriterSettings { Encoding = Encoding.GetEncoding(1252), OmitXmlDeclaration = true }; using (var writer = XmlWriter.Create(stringWriter, settings)) { var xmlSerializer = new XmlSerializer(o.GetType()); xmlSerializer.Serialize(writer, o); } return stringWriter.ToString(); } } 

这让我可以控制标签属性。

我在几个场合做的是创建一个类/结构来保存客户端程序上的数据并将数据序列化为字符串。 然后我发出Web请求并将其发送给XML字符串。 这是我用来将对象序列化为XML的代码:

 public static string SerializeToString(object o) { string serialized = ""; System.Text.StringBuilder sb = new System.Text.StringBuilder(); //Serialize to memory stream System.Xml.Serialization.XmlSerializer ser = new System.Xml.Serialization.XmlSerializer(o.GetType()); System.IO.TextWriter w = new System.IO.StringWriter(sb); ser.Serialize(w, o); w.Close(); //Read to string serialized = sb.ToString(); return serialized; } 

只要对象的所有内容都是可序列化的,它就会序列化任何对象。

使用Xstream框架生成xml字符串。 希望这可以帮助!

这是我以前做过的事情:

  private static string CreateXMLString(object o) { XmlSerializer serializer = new XmlSerializer(typeof(object)); var stringBuilder = new StringBuilder(); using (var writer = XmlWriter.Create(stringBuilder)) { serializer.Serialize(writer, o); } return stringBuilder.ToString(); }