Pass Type as a parameter to a function

178 views Asked by At

I have a dictionary object

Dictionary<string, Type> dict = new Dictionary<string, Type>();

I also have a BaseClass and a number of child-classes, say: ChildClass1, ChildClass2, etc. The dictionary has values:

dict.Add("type1", typeof(ChildClass1));
dict.Add("type2", typeof(ChildClass2));

My question is - is there any way to do something like this:

BaseClass c = new <<get a type from the dict: dict[type1]>>()?

I just want to make my solution more flexible, but I'm not sure if that's possible at all. Thanks!

2

There are 2 answers

0
Mark H On BEST ANSWER
var c = (BaseClass)Activator.CreateInstance(dict["type1"]);
0
DesignFirst On

you can invoke Activator.CreateInstance(type)