如何动态创建类实例

时间:2013-05-17 00:52:16

标签: c# dynamic

我有一组类(大约100)(假设Class1,Class2,Class3)。我想动态创建列表并添加到列表中。例如List<abc> test1 = new List<abc>(); abc可以是Class1 / Class2 / ClassN。怎么做?

1 个答案:

答案 0 :(得分:2)

正如我在评论中提到的,使用反射可以非常简单的方式完成。

public List<object> LoadObjectsFromAssembly(Assembly assemblyContainingClasses)
{
     var objectList = new List<object>();
     List<Type> classNames = assemblyContainingClasses.GetTypes().Where(t => t.IsClass && !t.IsAbstract).ToList();

     foreach(var classType in classNames) 
     {
         Type typeToLoad = assemblyContainingClasses.GetType(classType.FullName);
         objectList.Add(Activator.CreateInstance(typeToLoad));
     }
     return objectList;
}