Если я прочитал это правильно, тогда typeof()
будет вариантом для ссылки на ваш конкретный тип, если вы не хотите создавать экземпляр объекта в это время.
public static Type Selector(string recordType)
{
Type concreteType;
switch (recordType)
{
case "Common":
concreteType = typeof(ChildClassCommon);
break;
case "Special":
concreteType = typeof(ChildClassSpecial);
break;
default:
concreteType = null;
break;
}
return concreteType;
}
Поймите, хотя, вВ какой-то момент вам нужно создать экземпляр объекта, чтобы иметь возможность использовать его в вашем приложении.Таким образом, в приведенном выше примере для создания экземпляра вы можете использовать Reflection с вашим параметром DI, например, так:
var type = Selector("Common");
var myObject = (IMyInterface) Activator.CreateInstance(type, new object[] { dependency });
MSDN:
typeof()
Type