Frage

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

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

War es hilfreich?

Lösung

Ja, können Sie eine Implementierung des registrieren DbProviderFactory Klasse durch Hinzufügen der folgenden 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>

Der MyCustomDataProvider Die Assembly muss nicht im GAC registriert sein, sondern kann zusammen mit der Anwendung als bereitgestellt werden private Versammlung.

Sie können programmgesteuert auf den registrierten Datenanbieter verweisen, indem Sie den im angegebenen Wert verwenden invariant Attribut.Beispielsweise könnten Sie ADO.NET anweisen, das zu verwenden MyNamespace.MyCustomProviderFactory durch Angabe MyCustomProvider als die providerName in der Verbindungszeichenfolge:

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

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

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

Wo factory wird eine Instanz von sein MyNamespace.MyCustomProviderFactory Klasse.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top