8

是否可以在不将其安装在 GAC 中的情况下使用自定义 .NET 数据提供程序?

我可以引用自定义 DLL 并将其注册到我的配置文件中吗?

4

1 回答 1

7

的,您可以通过在配置文件中添加以下部分来注册DbProviderFactory类的实现:

<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 中注册,但可以作为私有程序集与应用程序一起部署。

invariant您可以使用属性中指定的值以编程方式引用已注册的数据提供者。例如,您可以通过在连接字符串中MyNamespace.MyCustomProviderFactory指定MyCustomProvider为来告诉 ADO.NET 使用 :providerName

<connectionStrings>
    <add name="ConnString" 
         providerName="MyCustomProvider" 
         connectionString="MyCustomConnectionString" />
</connectionStrings>

在代码中,您可以使用与DbProviderFactories.GetFactory方法相同的提供程序名称:

DbProviderFactory factory = DbProviderFactories.GetFactory("MyCustomDataProvider");

wherefactory将是MyNamespace.MyCustomProviderFactory该类的一个实例。

于 2012-02-27T15:27:09.063 回答