, .
public enum MyEnum
{
Type1, Type2
}
public abstract class MyBaseClass
{
public abstract MyEnum GetMyType();
}
public class MySubClass1 : MyBaseClass
{
public override MyEnum GetMyType()
{
}
}
public class MySubClass2 : MyBaseClass
{
public override MyEnum GetMyType()
{
}
}
, MySubClass1 MySubClass2 MyBaseClass.
.
public MyBaseClass CreateMyClass(MyEnum myEnum)
{
var dict = new Dictionary<MyEnum, Type>();
dict.Add(MyEnum.Type1, typeof(MySubClass1));
dict.Add(MyEnum.Type2, typeof(MySubClass2));
var type = dict.Where(x => x.Key == myEnum).Select(x => x.Value);
var instance = Activator.CreateInstance(type.GetType());
return (MyBaseClass)instance;
}
.
Dictionary Enum Type.
Enum , Activator , .
- - , MyBaseClass dict, .
--------------- EDIT ----------------
, string ,
ObjectType instance =
(ObjectType)Activator.CreateInstance("MyAssembly","MyNamespace." + argType);