自定义.NET数据提供程序

问题描述:

可以使用自定义.NET数据提供程序,而无需将其安装到GAC中?自定义.NET数据提供程序

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

,您可以在您的配置文件中添加following section注册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进行注册,但可以部署连同申请一起作为private assembly

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

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

在代码中,你可以用DbProviderFactories.GetFactory方法使用相同的供应商名称:

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

其中factory将是MyNamespace.MyCustomProviderFactory类的一个实例。

+0

这正是我正在做的。我不明白我要去哪里错了? – Mackolicious 2012-02-27 15:43:13

+0

您是否尝试在'type'属性中指定[完全限定的程序集名称](http://msdn.microsoft.com/en-us/library/k8xx4k69.aspx)? – 2012-02-27 15:46:15

+0

我忘了将DLL包含在我的启动项目中。 – Mackolicious 2012-02-28 16:19:22