2
我试图创建具有相同的基本类型这样的对象实例:C#Activator.CreateInstance MissingMethod例外
Assembly myAssembly = Assembly.GetExecutingAssembly();
var objs = myAssembly.GetTypes().Where(t => t.BaseType == typeof(SearchLogicObjectBase)).OrderBy(o => o.FullName);
foreach (var item in objs)
{
SearchLogicObjectBase p = (SearchLogicObjectBase)Activator.CreateInstance(item.GetType(), new Object[] { false });
_searchlogic.AddDefaultSearchObject(p);
}
派生的对象具有构造是这样的:
public SearchLogicCsri()
: this(true)
{ }
public SearchLogicCsri(bool extendsearch)
: base(extendsearch)
{
Table = "csri";
ViewModel = "CsriViewModel";
ExtendSearch = extendsearch;
}
和基础对象(SearchLogicObjectBase)具有这样的构造方法:
public SearchLogicObjectBase(bool extendsearch)
{
_extendsearch = extendsearch;
}
但是,上述代码导致以下例外:
找不到类型'System.RuntimeType'的构造函数。
基类和派生类型都有一个构造函数,它只接受一个布尔值,所以我不知道为什么我会得到这个错误。
任何人都可以帮忙吗?
非常欢呼 - 这是诀窍。 – pilsdumps 2010-11-11 20:55:49