是否可以使用自定义.NET数据提供程序而无需在GAC中安装它?
我可以引用自定义DLL并在配置文件中注册吗?
答案 0 :(得分:6)
是,您可以通过在配置文件中添加DbProviderFactory来注册following section类的实现:
<system.data>
<DbProviderFactories>
<add name="My Custom Data Provider"
invariant="MyCustomDataProvider"
description="Data Provider for My Custom Store"
type="MyNamespace.MyCustomProviderFactory, MyCustomDataProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=" />
</DbProviderFactories>
</system.data>
MyCustomDataProvider
程序集不必在GAC中注册,但可以作为private assembly与应用程序一起部署。
您可以使用invariant
属性中指定的值以编程方式引用已注册的数据提供程序。例如,您可以通过在连接字符串中将MyNamespace.MyCustomProviderFactory
指定为MyCustomProvider
来告诉ADO.NET使用providerName
:
<connectionStrings>
<add name="ConnString"
providerName="MyCustomProvider"
connectionString="MyCustomConnectionString" />
</connectionStrings>
在代码中,您可以使用DbProviderFactories.GetFactory方法使用相同的提供程序名称:
DbProviderFactory factory = DbProviderFactories.GetFactory("MyCustomDataProvider");
其中factory
将是MyNamespace.MyCustomProviderFactory
类的实例。