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

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

有帮助吗?

解决方案

是的, ,您可以注册一个实现 数据库提供者工厂 类通过添加 以下部分 在你的配置文件中:

<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 属性。例如,您可以告诉 ADO.NET 使用 MyNamespace.MyCustomProviderFactory 通过指定 MyCustomProvider 作为 providerName 在连接字符串中:

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

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

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

在哪里 factory 将是一个实例 MyNamespace.MyCustomProviderFactory 班级。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top