Pergunta

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.

Foi útil?

Solução

You don't need reflection here - use Activator

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

Outras dicas

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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top