如何从具有泛型返回类型

时间:2016-07-19 13:13:53

标签: c# generics exception

在构建用于获取属性值的扩展方法时,我有以下方法签名:

public static IEnumerable<TValue> GetAttributeValues<TAttribute, TValue>(
      this Type type,
      string methodName,
      Type[] parameterTypes,
      Func<TAttribute, TValue> valueSelector,
      bool inherit = false) where TAttribute : Attribute

然而,在测试期间,我发现我无法在此方法中抛出异常。如果我抛出ArgumentException的实例,执行过程似乎忽略它,,则异常不会冒出来。调用方法中的try... catch不会捕获任何内容。

如果我在方法调用的结果上调用GetType(),则类型将显示为方法的完全限定名称。

我也无法在调试时进入该方法。

任何人都可以解释为什么我无法使用异常停止应用程序,即使所有这些方法都抛出异常?

1 个答案:

答案 0 :(得分:2)

由于您的扩展方法返回IEnumerable<T>,因此您需要在其上调用类似ToArrayFirst的内容,否则无法枚举。