首页 >后端开发 >C++ >如何在 C# 中从序列化 XML 字符串反序列化对象?

如何在 C# 中从序列化 XML 字符串反序列化对象?

DDD
DDD原创
2024-12-26 14:39:17917浏览

How Can I Deserialize an Object from a Serialized XML String in C#?

从字符串反序列化对象

提供的方法 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn