HashSets和MethodInfo

时间:2014-09-01 08:50:41

标签: c# .net reflection hash methodinfo

我正在编写一个执行一些反思的例程。随着它的进行,它会对遇到的MethodInfo实例执行一些验证 - 根据某些预先确定的合同验证其参数和返回类型。这个验证并不便宜所以我想记录一组先前经过验证的方法,这样如果例程不止一次地遇到它们,就不必再次验证它们。

我应该......

  1. 使用HashSet<MethodInfo>并向其添加经过验证的MethodInfo个实例。
  2. 使用HashSet<int>并向其添加MethodHandle经过验证的方法
  3. 使用HashSet<int>并向其添加MetadataToken经过验证的方法
  4. 我不愿意选择选项1,因为我没有获取MethodInfo个实例。我无法控制它们来自何处,并想知道我是否可能没有多个实例代表相同类型的相同方法。

    Optionss 2和3似乎可行,因为整个事情都在一个app-domain中运行。关于MethodHandleMetadataToken的文档很少 - 我们不知道他们何时在应用域内进行更改。

0 个答案:

没有答案