自定义.NET数据提供程序

Mac*_*ous 8 .net ado.net dataprovider system.data dbproviderfactories

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

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

Enr*_*lio 6

是的,您可以通过在配置文件中添加以下部分来注册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>
Run Code Online (Sandbox Code Playgroud)

MyCustomDataProvider组件没有在GAC进行注册,但可以与应用作为一起部署私有程序.

您可以使用invariant属性中指定的值以编程方式引用已注册的数据提供程序.例如,您可以告诉ADO.NET使用MyNamespace.MyCustomProviderFactory指定MyCustomProviderproviderName连接字符串中的:

<connectionStrings>
    <add name="ConnString" 
         providerName="MyCustomProvider" 
         connectionString="MyCustomConnectionString" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)

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

DbProviderFactory factory = DbProviderFactories.GetFactory("MyCustomDataProvider");
Run Code Online (Sandbox Code Playgroud)

这里factory将是一个实例MyNamespace.MyCustomProviderFactory类.