Reflection 真实世界的反射示例

Reflection 真实世界的反射示例,reflection,Reflection,在生产代码中使用反射的最佳示例是什么?ASP.NET MVC从URL推断要调用的操作和控制器。一般路由。WPF数据绑定: 1) 绑定路径“(TextBox.Text)”与“Text” 如果绑定到名为Text的路径,WPF将使用反射来解析名称。如果使用类限定名,绑定将避免反射性能受到影响。类限定名还允许绑定到附加的属性 (via)最近,我不得不使用反射从程序集的路径加载程序集(以便调查其公共类型)。 -但不是很典型 经常使用反射 几乎所有支持插件的Windows窗体应用程序 在LinqtoSQL问

在生产代码中使用反射的最佳示例是什么?

ASP.NET MVC从URL推断要调用的操作和控制器。一般路由。

WPF数据绑定:

1) 绑定路径“(TextBox.Text)”与“Text”

如果绑定到名为Text的路径,WPF将使用反射来解析名称。如果使用类限定名,绑定将避免反射性能受到影响。类限定名还允许绑定到附加的属性


(via)

最近,我不得不使用反射从程序集的路径加载程序集(以便调查其公共类型)。

  • -但不是很典型
  • 经常使用反射
  • 几乎所有支持插件的Windows窗体应用程序

    • 在LinqtoSQL问世之前……我必须在.NET2.0中编写自己的ORM

      我大量使用反思来反思:

      • 类的CRUD存储过程
      • 属性的列名
      • 哪些操作对该类有效
      在检索结果之后,我还使用反射来处理所有变量赋值(所有类都继承了一个ActiveRecord类,该类处理对DAL的调用)


      粗糙的东西…但经过一些性能调整后,还不错。

      我的DAL完全基于反射。它反映了构建SQL的POCO属性。

      从具有ID、类型和其他数据的SQL表中提取数据


      然后您可以加载“Chevrolet”并在工厂内使用它的所有方法,我们使用反射来传递接口的“虚拟”实现或接口的真实(连接到DB)实现,基于属性文件(Java)中指定的类.

      我确实有机会在一个点上编写一个Python O/R映射器,但它只是一个概念证明,从未投入生产

      我做了很多工作,在DBMS上广泛使用系统数据字典(例如,一个通用的缓慢变化的维度加载器)。有人可能会说,这在原则上与反射式编程并无不同


      最后,所有形式的Python都很容易进行反射。事实上,它在这方面做得非常好,我用它来研究其他语言中的底层API,并使用反射功能来查询底层接口。我已经用Python世界中几乎所有的反射机制做到了这一点:Python API上的CPython和COM API使用makepy,Jython用于java API,IronPython用于.Net API。

      在我最近的一个应用程序中,Kofax Express的一个插件中,我可以选择OCR文件并输出PDF。因为我使用的OCR工具需要支付运行时费用,所以我将OCR部件作为一个单独的组件。如果文件存在,我将显示OCR选项,并延迟绑定程序集,调用所需的方法,并通过反射附加到事件。一个没有接口的简单插件体系结构,如果客户不需要OCR,则无需支付版税;我们只是不给他们OCR dll