在生产代码中使用Reflection的最佳示例是什么?
答案 0 :(得分:3)
ASP.NET MVC推断要从URL调用的操作和控制器。一般路由。
答案 1 :(得分:2)
最近,我不得不使用反射从程序集的路径加载程序集(以便调查其公共类型)。
答案 2 :(得分:2)
在Linq To Sql出现之前......我必须在.NET 2.0中编写自己的ORM。
我大量使用反思来反思:
我还使用了反射来检索结果后的所有变量赋值(所有类都继承了一个ActiveRecord类来处理对DAL的调用)。
粗糙的东西......但经过一些性能调整之后,这并不是一件坏事。
答案 3 :(得分:1)
从您拥有ID,类型和其他数据的SQL表中提取数据
然后你可以加载“雪佛兰”并使用它的所有方法
答案 4 :(得分:1)
我确实有机会在一个点上编写一个Python O / R映射器,但它是一个概念证明,从未投入生产。
我做了很多工作,在DBMS上广泛使用系统数据字典(例如,通用的缓慢变化的维度加载器)。可能有人认为这与原则上的反思性编程没有什么不同。
最后,Python的各种形式都很容易做反思。事实上,它在这方面非常擅长,我用它来探讨其他语言中的底层API - 并使用反射功能来查询底层接口。我已经完成了Python世界中存在的几乎所有反射机制:Python API上的CPython和使用makepy的COM API,Java API的Jython和.Net API的IronPython。
答案 5 :(得分:1)
在我最近的一个应用程序中,Kofax Express的加载项,我可以选择OCR文件并输出PDF。由于我使用的OCR工具有运行时费用,因此我将OCR部件分开组装。如果该文件存在,我将显示OCR选项并稍后绑定程序集并调用所需的方法并使用反射附加到事件。一个简单的插件架构,没有接口,如果不需要OCR,客户不必支付版税;我们只是不给他们OCR dll。
答案 6 :(得分:0)
WPF数据绑定:
1)绑定路径“(TextBox.Text)”vs“Text”?
如果绑定到名为Text的路径,WPF将使用反射来解析名称。如果使用类限定名称,则绑定可避免反射性能命中。类限定名称还允许绑定到附加属性!
(通过http://dotnet.org.za/rudi/archive/2008/03/25/10-things-i-didn-t-know-about-wpf-data-binding.aspx)
答案 7 :(得分:0)
答案 8 :(得分:0)
我的DAL完全基于反思。它反映了构建SQL的POCO属性。
答案 9 :(得分:0)
在工厂中,我们使用反射来传递接口的“虚拟”实现或接口的真实(挂钩到DB)实现,基于属性文件(在Java中)指定的类。