3 回答

TA贡献1805条经验 获得超10个赞
如果这三个命名空间在同一个 DLL 中
您可以尝试使用Activator.CreateInstancewithType.GetType函数。
Type.GetType(nameSapce) 在此 DLL 中获取具有命名空间的类类型
Activator.CreateInstance relation 创建一个对象。
像这样。
string nameSapce = ConfigurationManager.AppSettings["NameSpace"];
var MyVar = Activator.CreateInstance(Type.GetType(nameSapce));
在webConfig 上设置
keyNameSpace可以设置你想在运行时创建哪个类。
<configuration>
<appSettings>
<add key="NameSpace" value="NameSpaceVersion2.Class1"/>
</appSettings>
</configuration>

TA贡献1803条经验 获得超6个赞
这是接口的一个很好的用途。
但是,如果您无法更改实现(因此每个类都实现接口),您可以创建这样做的包装类。
基本上,为每个实现目标接口的实现创建一个类,但将调用传递给目标实现。您可以将实现类传递给构造函数中的包装类,然后将其存储为私有字段,该字段将用于接口的每个公共成员访问。
- 3 回答
- 0 关注
- 188 浏览
添加回答
举报