【发布时间】:2011-03-02 06:43:16
【问题描述】:
这是交易。我有一个程序,它将加载给定的程序集,解析所有类型及其成员并编译 TreeView(非常类似于旧的 MSDN 站点),然后为 TreeView 中的每个节点构建 HTML 页面。它基本上需要一个给定的程序集,并允许用户为它创建自己的类似 MSDN 的库以用于文档目的。
这是我遇到的问题:每当在定义的类中遇到运算符重载时,反射将其作为“MethodInfo”返回,其名称设置为“op_Assign”或“op_Equality”之类的名称。我希望能够捕获这些并正确列出它们,但我在返回的 MethodInfo 对象中找不到任何内容,以准确识别我正在查看操作员。
我绝对不想只捕获以“op_”开头的所有内容,因为这肯定会(在某些时候)会采用不应该采用的方法。我知道像这样的“特殊情况”的其他方法和属性设置了“IsSpecialName”属性,但显然运算符并非如此。
我已经在网上搜索并绞尽脑汁花了两天时间试图弄清楚这一点,所以任何帮助都将不胜感激。
【问题讨论】:
-
NRefactory 项目在这里是相关的。它有解析方法来帮助解决这个问题。 github.com/icsharpcode/NRefactory/blob/master/…
标签: c# reflection operator-overloading