Benutzerdefinierte .NET-Datenanbieter
-
13-11-2019 - |
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?
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.