通过反射调用带有默认datetime参数的泛型方法

时间:2017-06-30 13:08:47

标签: c# generics reflection

我有简单的通用方法,带有以下签名:

public static T SafeGetValue<T>(this XElement xElem, string attrName, 
                                 T defaultValue = default(T), bool throwExceptions = false)

我想这样调用:

var genericMethod = typeof(XElementExtensions).GetMethod("SafeGetValue");
genericMethod = genericMethod.MakeGenericMethod(type);
genericMethod.Invoke(null,new[] { xElem, "attr", Type.Missing, Type.Missing });
提供了

type变量,它对于不同的调用(typeof(int),typeof(bool),typeof(string)等)是不同的,但是当我提供{{ 1}},我得到了运行时异常:

  

类型&#39; System.FormatException&#39;的例外情况发生在mscorlib.dll中,但未在用户代码中处理。附加信息:遇到默认值的无效类型。

0 个答案:

没有答案