【问题标题】:What does XmlSerializer use to compile assemblies?XmlSerializer 使用什么来编译程序集?
【发布时间】:2015-10-09 18:41:01
【问题描述】:

我假设是命令行,XmlSerializer 在构造 XmlSerializer 类的实例时使用什么工具来生成临时程序集?

XmlSerializer serializer = new XmlSerializer(type);

在这个构造函数中XmlSerializer在这个构造函数中使用了一些东西来编译一个临时程序集,什么?

【问题讨论】:

    标签: c# .net serialization xmlserializer


    【解决方案1】:

    他们使用内置的 C# 代码编译器,使用 CSharpCodeProvider(最终调用 csc)。

    System.CodeDom.Compilerreference source 中的存在确实表明了这一点。

    一些挖掘发现this line that shows the compiler

    【讨论】:

      【解决方案2】:

      没有,它在我检查的最后一个实现中专门使用了反射。

      仅供参考 - 在 .Net 4.5.1 中更改了实现,这破坏了我的许多网络服务:(

      您在哪个版本的 .Net 上运行您的应用程序?

      【讨论】:

      • 它必须编译程序集。它使用 C# 编译器。
      • 您是否参考了您检查的最后一个实现?问题不能回答问题,也不能为未来的读者带来任何好处,因此请尝试将它们移至 cmets 以解决实际问题。此外,IMO 个人轶事也无济于事。这是一个很好的补充,它已经改变了,但它破坏了你的网络服务这一事实可以被跳过。
      • 1) 重新实现,2) 重大更改,3)
      【解决方案3】:

      生成器使用了两种序列化工具。这是 MSDN 中对它的引用。

      https://msdn.microsoft.com/en-us/library/bb924517%28v=vs.110%29.aspx 我相信你正在寻找

      XML 序列化程序生成器工具 (Sgen.exe)

      【讨论】:

      • 不,那是开发者工具。这不是框架的一部分。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-15
      • 2020-03-24
      • 1970-01-01
      • 2013-05-16
      • 1970-01-01
      • 1970-01-01
      • 2012-02-13
      相关资源
      最近更新 更多