У меня есть решение, которое содержит два проекта.Прежде всего позвольте мне описать мой сценарий.Проект 1: содержит вызовы базового класса MyBaseClass со следующими двумя интересующими меня свойствами и методом:
TypeToLoad - свойство статической строки, класс которой унаследован для создания экземпляра с простой функциональностью get / set.
Instance - статическое свойство, которое возвращает экземпляр MyBaseClass типа, указанного в TypeToLoad, со следующими строками кода:
public static MyBaseClass Instance{
return (MyBaseClass)Activator.CreateInstance(Type.typeof(TypeToLoad));
}
теперь во втором проекте я наследую MyBaseClass следующим образом (конечно же, собственное пространство имен иссылки были добавлены).
public class MyInheritClass : MyBaseClass {
//implements all other functions of MyBaseClass;
}
и один из моих других файлов кода, в том же проекте, что и MyInheritClass, у меня есть следующие строки кода:
Type myType = Type.typeof("MyInheritClass"); //returns the correct "Type"
MyBaseClass.TypeToLoad = "MyInheritClass";
MyBaseClass myInstance = MyBaseClass.Instance; //Errors... because Type.typeof(...) could not resolve "MyInheritClass".
Когда я двигаюсьФайл кода MyInheritClass в том же проекте, что и MyBaseClass, код выполняется просто отлично.
Мой вопрос заключается в том, есть ли возможность создать экземпляр MyInheritClass с помощью MyBaseClass.Instance, установив MyBaseClass.TypeToLoad = "MyInheritClass" без необходимостиесть эти два класса в одном проекте (MyBaseClзадница в базовой библиотеке классов DLL и MyInheritClass в другом проекте, ссылающемся на библиотеку DLL MyBaseclass)?
Я пытался найти отражения, Активатор, но не смог найти то, что искал.Может быть, я не знаю правильную терминологию для этого.