这是交易.我有一个程序将加载给定的程序集,解析所有类型及其成员并编译TreeView(非常类似于旧的MSDN站点),然后为TreeView中的每个节点构建HTML页面.它基本上采用给定的程序集,并允许用户为文档目的创建自己的类似MSDN的库.
这是我遇到的问题:只要在定义的类中包含操作符重载,反射就会将其返回为"MethodInfo",其名称设置为"op_Assign"或"op_Equality".我希望能够捕获这些并正确列出它们,但我在MethodInfo对象中找不到任何返回的内容,以准确识别我正在查看运算符.
我绝对不想只捕获以"op_"开头的所有内容,因为这肯定会(在某些时候)会选择一个它不应该采用的方法.我知道像这样的"特殊情况"的其他方法和属性设置了"IsSpecialName"属性,但显然不是运算符的情况.
我一直在搜索网络,并且在两天内试图弄清楚这一点,所以任何帮助都将非常感激.
我想在<see cref="..." /> XML文档标记中引用一个运算符,但我似乎无法找到有关如何执行此操作的任何提示.此标记上的MSDN文章仅显示引用方法的简单示例,但不介绍可以引用的不同类型的成员.
特别是,我想引用一个隐式转换运算符,但是也可以理解引用运算符的一般规则.
比方说,我们有一个简单的结构,我们将其定义==,!=并且隐式转换操作符:
public struct MyStructure
{
public int Value { get; set; }
public static bool operator ==(MyStructure x, MyStructure y) => x.Value == y.Value;
public static bool operator !=(MyStructure x, MyStructure y) => x.Value != y.Value;
public static implicit operator MyStructure(int i) => new MyStructure { Value = i };
}
Run Code Online (Sandbox Code Playgroud)
只需足够的人可以引用该Value属性<see cref="MyStructure.Value" />,但如何引用==运算符?我显然试图<see cref="MyStructure.==" />和 …