.net - 要求代码审查: does such XmlSerializer factory have any drawbacks?

标签 .net multithreading xml-serialization

人们倾向于建议缓存 XmlSerializer 实例。这仍然是现实的吗? (如果否,什么时候会变成这样?)。

我也想出了以下代码,并要求对其进行审查。

  • 它有什么缺点吗?
  • 它会为不同类型使用很多线程\内核吗?
  • 我该如何改善?

  • 代码:
    public static class SerializerFactory<T>
    {
        public static readonly XmlSerializer Serializer = new XmlSerializer(typeof(T));
    }
    

    和用法:
    var obj = (T)XmlSerializerFactory<T>.Serializer.Deserialize(input);
    

    最佳答案

    当您使用XmlSerializer(Type)XmlSerializer(Type,String)构造函数时,序列化程序集将被缓存,因此创建新的序列化程序实例(source)的开销很小。

    因此,就像您的工厂将使用此构造函数一样,它没有任何实际意义。您也可以直接使用构造函数。

    关于.net - 要求代码审查: does such XmlSerializer factory have any drawbacks?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1494624/

    相关文章:

    c# - XML 序列化和空集合

    c# - 将 .net 类库移植到 Windows 应用商店应用程序类库

    .net - 在学习 WPF 时,你觉得最难理解的是什么

    javascript - React JS/Typescript 中的空合并运算符

    java - 如何在两个无限循环线程之间共享单个列表?

    java - Log4j - 每个线程的文件日志

    c# - 使用 XML 序列化序列化接口(interface)列表

    c# - 使用 C# 从 IntPtr 复制带有 Marshal.Copy 的字节数组不起作用

    c++ - 在多线程程序中同步嵌入式Python

    c# - XmlAttributeAttribute 和 XmlElementAttribute