gpt4 book ai didi

c# - 使用 .Net Standard 生成代码

转载 作者:行者123 更新时间:2023-11-30 17:35:12 26 4
gpt4 key购买 nike

我有一个 little library这在很大程度上依赖于 Emitting 类和方法。

我想将它迁移到 .Net Standard,因为它不使用任何非托管的东西,因此可以在任何操作系统上轻松运行。但是当我在我的解决方案上运行可移植性检查器时,它显示我的 Expression 生成器部分一切正常,但它在 Emit 用法上提示。

这里是对net452netstandard1.6netstandard2.0的分析。

enter image description here

我的问题是是否有一些现代和推荐的方法在运行时生成 .Net Standard 支持的类,或者我可以忘记将我的库移植到它?

最佳答案

好吧,我发现现在在 .Net Standard 中我们有表达式树来生成独立的委托(delegate)和老式的 Emit(可用于 System.Reflection.Emit System.Reflection.Emit.Lightweight 命名空间)。不幸的是,我们失去了前者和后者之间的桥梁(我的意思是 LambdaExpression.CompileToMethodsee question)。

所以一般来说,在您不需要在运行时生成类型(例如,即时实现一些接口(interface))之前,它的代码生成能力几乎与完整桌面 .Net 中的相同。在这种情况下,您必须手动发出 IL。

关于c# - 使用 .Net Standard 生成代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41397930/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com