Fornitori di dati .NET personalizzati
-
13-11-2019 - |
Domanda
è possibile utilizzare un fornitore di dati .NET personalizzato senza installarlo nel GAC?
Posso fare riferimento a un DLL personalizzato e registrarlo all'interno del mio file di configurazione?
Soluzione
Sì , è possibile registrare un'implementazione del DbProviderFactory class aggiungendo il seguente sezione Nel tuo file di configurazione:
.
<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>
Il gruppo MyCustomDataProvider
non deve essere registrato nel GAC ma può essere distribuito insieme all'applicazione come Private Assembly .
È possibile fare riferimento al fornitore di dati registrato a livello programmatico utilizzando il valore specificato nell'attributo invariant
. Ad esempio, è possibile dirlo a ADO.NET di utilizzare MyNamespace.MyCustomProviderFactory
specificando MyCustomProvider
come providerName
nella stringa di connessione:
.
<connectionStrings>
<add name="ConnString"
providerName="MyCustomProvider"
connectionString="MyCustomConnectionString" />
</connectionStrings>
In codice è possibile utilizzare lo stesso nome del provider con il dbproviderfactory. Metodo GetFactory :
.
DbProviderFactory factory = DbProviderFactories.GetFactory("MyCustomDataProvider");
Dove factory
sarà un'istanza della classe MyNamespace.MyCustomProviderFactory
.