我有一个包含两个项目的解决方案。首先让我描述一下我的场景。项目 1:拥有一个名为 MyBaseClass 的基类,具有以下两个我感兴趣的属性和方法:
TypeToLoad - 使用简单的获取/设置功能实例化哪个继承类的静态字符串属性。
Instance - 静态属性,它返回 TypeToLoad 中指定类型的 MyBaseClass 实例,其中包含以下代码行:
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 相同的项目中时,代码运行得很好。
我的问题是,无论如何通过设置 MyBaseClass.TypeToLoad = "MyInheritClass" 来使用 MyBaseClass.Instance 创建和实例化 MyInheritClass 而不必在同一个项目中拥有这两个类(基础 DLL 类库中的 MyBaseClass 和另一个项目中的 MyInheritClass引用 MyBaseclass DLL 库)?
我试图搜索反射,Activator,但找不到我要找的东西。也许我不知道正确的术语。