使用构造函数创建泛型类型T的对象列表抛出:"未找到类型System.RuntimeType上的构造"例外

时间:2018-03-06 17:27:39

标签: c# reflection

(解决)  谢谢大家的答案。让我用糟糕的英语更好地解释我的问题。  我有一个A类,它有一个DataTable字段。每个A实例的DataTable可能不同。另一方面,我有模型类,它在构造函数中占用一行并绑定到行,因此我可以将DataTable行视为对象。我想要实现的是一种方法&#34; List<T> GenerateResultList<T>()&#34; foreach行实例化一个类型为T的模型,将行传递给构造函数。只有一类T型(型号)。这是我的尝试,现在正在运作:

   public List<T> GenModelsFromResults<T>()
    {

        var db = FarmaDB.Instance;
        var modelType = db.GetType().Assembly.GetTypes().First(t => t.IsClass && !t.IsAbstract && t.IsAssignableFrom(typeof(T)));
        var result = new List<T>();

        _resultsTable.Rows.Cast<DataRow>().ToList()
           .ForEach(row =>
           {
               result.Add((T)Activator.CreateInstance(modelType, row);
           }); 

        return result;
    }

0 个答案:

没有答案
相关问题