我可以根据web.config中的值实例化一个类型吗?

时间:2009-09-11 02:55:26

标签: asp.net .net-3.5

我有2个类都继承自同一个接口。 我希望有时使用一个类运行网站,有时使用另一个类运行网站。 想要根据配置值决定使用哪一个。 我可以使用web.config来决定从哪个类创建当前实例?

2 个答案:

答案 0 :(得分:3)

创建一个返回类型为IMyInterface的对象的工厂方法。将配置值作为参数传递,以确定要创建的具体对象。

IMyInterface FactoryMethod(string configValue)

答案 1 :(得分:1)

确实可以。您感兴趣的是AssemblyQualifiedName的字段Type。所以得到你的类型并做:

myObj.GetType().AssemblyQualifiedName

并将结果写入您的配置:

<add key="TypeName" Value="...." />

然后,您需要考虑它具有哪些构造函数,并且可以像这样加载:

Type.GetType("...").GetConstructor(...).Invoke(...);