gpt4 book ai didi

c# - Reflection.Emit 在现实世界中的应用

转载 作者:IT王子 更新时间:2023-10-29 03:58:36 26 4
gpt4 key购买 nike

在我读过的所有反射(reflection)性书籍中,他们经常说您想要即时生成 IL 的情况并不多,但他们没有给出任何有意义的例子。

在看到 Reflection.Emit 作为一家游戏公司的工作要求后,我很好奇它还用在了哪些地方。

我现在想知道您在现实世界中是否见过任何情况是解决问题的最佳方案。也许它被用作设计模式的实现?

注意我想PostSharp/AOP 使用它。

最佳答案

Expression.Compile 本质上是这样做的 - 这是 LINQ 的一些的关键。

我目前正在使用反射发射来重写序列化 API - 因为有时反射还不够好。碰巧这也将允许它生成 dll(很像 sgen 的工作方式),允许完全静态代码(我希望这将使它对 iPhone 友好)。

我也在 HyperDescriptor 中使用了类似的方法提供非常快速的基于名称的属性查找。

我还使用 emit 来做类似的事情:

所有与 SO 问题相关的问题。

最后,这种 IL 方法是 protobuf-net “v2” 的核心;这里的原因是它允许我两者在运行时拥有一个快速模型(通过 IL 动态编译它),将相同的直接写入静态-已编译的 dll,以便它可以在 iPhone、Phone 7 等设备上运行(它们缺少必要的元编程 API)。

关于c# - Reflection.Emit 在现实世界中的应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2312623/

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