我正在编写一个执行一些反思的例程。随着它的进行,它会对遇到的MethodInfo
实例执行一些验证 - 根据某些预先确定的合同验证其参数和返回类型。这个验证并不便宜所以我想记录一组先前经过验证的方法,这样如果例程不止一次地遇到它们,就不必再次验证它们。
我应该......
HashSet<MethodInfo>
并向其添加经过验证的MethodInfo
个实例。HashSet<int>
并向其添加MethodHandle
经过验证的方法HashSet<int>
并向其添加MetadataToken
经过验证的方法我不愿意选择选项1,因为我没有获取MethodInfo
个实例。我无法控制它们来自何处,并想知道我是否可能没有多个实例代表相同类型的相同方法。
Optionss 2和3似乎可行,因为整个事情都在一个app-domain中运行。关于MethodHandle
和MetadataToken
的文档很少 - 我们不知道他们何时在应用域内进行更改。