2012-02-27 12 views

答えて

6

はいは、あなたの設定ファイルに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属性で指定された値を使用して、登録されたデータプロバイダーをプログラムで参照できます。たとえば、あなたは、接続文字列にproviderNameようMyCustomProviderを指定することで、MyNamespace.MyCustomProviderFactoryを使用するADO.NETを言うことができる:

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

のコードでは、あなたがDbProviderFactories.GetFactory方法と同じプロバイダ名を使用することができます。

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

ここでfactoryMyNamespace.MyCustomProviderFactoryクラスのインスタンスになります。

+0

これはまさに私がやっていることです。私はどこが間違っているのか分からないのですか? – Mackolicious

+0

'type'属性に[完全修飾アセンブリ名](http://msdn.microsoft.com/en-us/library/k8xx4k69.aspx)を指定しようとしましたか? –

+0

スタートアッププロジェクトにDLLを含めるのを忘れました。 – Mackolicious

関連する問題