【发布时间】:2015-07-10 19:09:12
【问题描述】:
假设具有参数化构造函数的类为:
MyObject(string param1, string param2, string param2)
{
...
}
我有一个 Generic 方法,它返回一个 Generic Class 的实例和
MyObject 就是这样的例子之一。
如何使用参数化构造函数实例化泛型类 并将空值传递给它的所有参数?这是需要的 泛型类的属性稍后会被填充 阶段。
我尝试过使用Activator 作为:
public static T GetGenericObject<T>()
{
T resource = (T)Activator.CreateInstance(typeof(T), null);
...
}
但是我得到一个异常,我在MyObject 中没有无参数构造函数。我知道我可以轻松添加一个,但不能修改类(不要问为什么)。
【问题讨论】:
-
我相信你知道这一点,但必须说:在构造函数中要求属性,然后传入空值,因为它们可以稍后填充,这似乎是一个非常糟糕的主意。
标签: c# generics constructor instantiation activator