簡體   English   中英

C#Activator.CreateInstance MissingMethod異常

[英]C# Activator.CreateInstance MissingMethod exception

我正在嘗試創建具有相同基本類型的對象的實例,如下所示:

  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'的構造方法。

基本類型和派生類型都有一個采用單個布爾值的構造函數,因此我不確定為什么會收到錯誤。

有人可以幫忙嗎?

不要傳遞item.GetType(),而是傳遞item,因為item已經是一種類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM