Question

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.

Was it helpful?

Solution

You don't need reflection here - use Activator

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

OTHER TIPS

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
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top