我正在.net 3.5中查看Activator.CreateInstance的所有各种构造函数。我想创建一个类的实例,调用一个特定的构造函数。我没有课程类型,只有它的名字。我有以下几点,这是有效的,但实际上最先调用无参数构造函数,然后是我想要的。这不是什么大问题,但无参数构造函数调用一个相当繁忙的基构造函数,而且我想调用的构造函数也是。Activator.CreateInstance具有类型名称作为字符串并包含参数
换句话说,给定一个类型,使用参数调用CreateInstance很容易(只有下面的最后两行),但只给出一个类型名称,有没有比这更好的方法?
ObjectHandle oh = Activator.CreateInstance("MyDllName", "MyNS." + "MyClassName");
object o = oh.Unwrap();
object newObj = Activator.CreateInstance(o.GetType(), new object[] { param1 });
return (IMyDesiredObject)newObject;
谢谢!
谢谢,里德 - 我看到那个人,但我不知道如何处理ActivationAttributes和SecurityInfo。这些文档没有表明(和Binder和Culture一样)它们可能是空的,但事实证明它们可以。适合我! – 2010-05-12 16:59:48