In a namespace I have an arbitrary number of classes fulfilling an interface IModel. Given the name of a class as a string, I want to instantiate that class and store the resulting object in a variable of type IModel.

As I have no experience in reflection, I did not figure out how to do it.

有帮助吗?

解决方案

You don't need reflection here - use Activator

IModel model = (IModel)Activator.CreateInstance(Type.GetType(typeName));

其他提示

You could have a look at Activator.CreateInstance.

There are many ways to do this. I do the following:

Type t = Type.GetType("<name of class>");
IModel m = (IModel)Activator.CreateInstance(t); // assuming constructor has no parameters
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top