我有2个类都继承自同一个接口。 我希望有时使用一个类运行网站,有时使用另一个类运行网站。 想要根据配置值决定使用哪一个。 我可以使用web.config来决定从哪个类创建当前实例?
答案 0 :(得分:3)
是
创建一个返回类型为IMyInterface
的对象的工厂方法。将配置值作为参数传递,以确定要创建的具体对象。
IMyInterface FactoryMethod(string configValue)
答案 1 :(得分:1)
确实可以。您感兴趣的是AssemblyQualifiedName
的字段Type
。所以得到你的类型并做:
myObj.GetType().AssemblyQualifiedName
并将结果写入您的配置:
<add key="TypeName" Value="...." />
然后,您需要考虑它具有哪些构造函数,并且可以像这样加载:
Type.GetType("...").GetConstructor(...).Invoke(...);