8 Stimmen

Benutzerdefinierte .NET-Datenanbieter

Ist es möglich, einen benutzerdefinierten .NET-Datenanbieter zu verwenden, ohne ihn in der GAC zu installieren?

Kann ich auf eine benutzerdefinierte DLL verweisen und sie in meiner Konfigurationsdatei registrieren?

7voto

Enrico Campidoglio Punkte 51948

Oui können Sie eine Implementierung der Methode DbProviderFactory Klasse durch Hinzufügen der folgender Abschnitt in Ihrer Konfigurationsdatei:

<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>

En MyCustomDataProvider Assembly muss nicht im GAC registriert werden, sondern kann zusammen mit der Anwendung als private Versammlung .

Sie können programmatisch auf den registrierten Datenanbieter verweisen, indem Sie den Wert verwenden, der im Feld invariant Attribut. Sie könnten ADO.NET zum Beispiel sagen, dass es das MyNamespace.MyCustomProviderFactory durch Angabe von MyCustomProvider als die providerName in der Verbindungszeichenfolge:

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

Im Code können Sie denselben Anbieternamen mit der Option DbProviderFactories.GetFactory Methode:

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

donde factory wird eine Instanz der MyNamespace.MyCustomProviderFactory Klasse.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X