This example使用StringWriter来保存序列化数据,然后调用ToString()给出实际的字符串值:
Person john = new Person(); XmlSerializer xmlSerializer = new XmlSerializer(typeof(Person)); StringWriter stringWriter = new StringWriter(); xmlSerializer.Serialize(stringWriter,john); string serializedXML = stringWriter.ToString();
有没有更简单/更清洁的方式来做到这一点?所有的Serialize()重载似乎都使用Stream或Writer。
更新:询问有关serializing an IEnumerable via an Extension Method的类似问题。
有扩展方法的乐趣…
var ret = john.ToXmlString()
public static class XmlTools { public static string ToXmlString<T>(this T input) { using (var writer = new StringWriter()) { input.ToXml(writer); return writer.ToString(); } } public static void ToXml<T>(this T objectToSerialize,Stream stream) { new XmlSerializer(typeof(T)).Serialize(stream,objectToSerialize); } public static void ToXml<T>(this T objectToSerialize,StringWriter writer) { new XmlSerializer(typeof(T)).Serialize(writer,objectToSerialize); } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。