自定义.NET数据提供程序

时间:2012-02-27 15:09:38

标签: .net ado.net dataprovider system.data dbproviderfactories

是否可以使用自定义.NET数据提供程序而无需在GAC中安装它?

我可以引用自定义DLL并在配置文件中注册吗?

1 个答案:

答案 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类的实例。