从字符串反序列化对象
提供的方法 SerializeObject 可以将对象序列化为文件。要将对象的 XML 表示形式检索为字符串,需要稍作修改。
解决方案涉及用 StringWriter 替换 StreamWriter:
public static string SerializeObject<T>(this T toSerialize) { XmlSerializer xmlSerializer = new XmlSerializer(toSerialize.GetType()); using(StringWriter textWriter = new StringWriter()) { xmlSerializer.Serialize(textWriter, toSerialize); return textWriter.ToString(); } }
使用 GetType() 方法在 XmlSerializer 构造函数中,以确保在序列化期间考虑 T 的所有可能子类。
与 typeof(T) 的用法不同, GetType() 涵盖了所有子类,允许代码通过继承来处理对象。有关 typeof(T) 导致问题的更多信息和具体示例,请参阅以下链接:http://ideone.com/1Z5J1。
此外,值得注意的是,不同版本的 .NET 运行时当遇到 typeof(T) 错误时可能会生成不同的异常消息。
以上是如何在 C# 中从序列化 XML 字符串反序列化对象?的详细内容。更多信息请关注PHP中文网其他相关文章!