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?

È stato utile?

Soluzione

, è 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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top