XmlSerializer
的完整指南背景介绍
您有一个复杂的 C# 对象,需要将其序列化为 XML 格式以进行数据存储或传输。虽然对象本身已做好序列化准备,但简单的 ToString()
方法无法直接生成 XML 表示。
问题与解决方案
XmlSerializer
类是解决这个问题的理想工具。以下代码演示了如何使用它:
<code class="language-csharp">// 创建对象并设置属性 MyObject o = new MyObject(); // ... // 使用 XmlSerializer 将对象序列化为 XML XmlSerializer xsSubmit = new XmlSerializer(typeof(MyObject)); string xml; using (StringWriter sww = new StringWriter()) { using (XmlWriter writer = XmlWriter.Create(sww)) { xsSubmit.Serialize(writer, o); xml = sww.ToString(); // XML 数据存储在 xml 变量中 } }</code>
通用的序列化方法
为了更方便地处理不同类型的对象,可以使用一个通用的序列化方法:
<code class="language-csharp">public class GenericSerializer<T> where T : class { public static string Serialize(T obj) { XmlSerializer xsSubmit = new XmlSerializer(typeof(T)); using (var sww = new StringWriter()) { using (XmlTextWriter writer = new XmlTextWriter(sww) { Formatting = Formatting.Indented }) { xsSubmit.Serialize(writer, obj); return sww.ToString(); } } } }</code>
使用方法:
<code class="language-csharp">// 序列化 MyClass 对象 string xmlMessage = GenericSerializer<MyClass>.Serialize(myObj);</code>
通过以上方法,您可以轻松地将各种 C# 对象序列化为格式良好的 XML,用于各种应用场景。
以上是如何使用XMLSerializer将C#对象序列化为XML?的详细内容。更多信息请关注PHP中文网其他相关文章!