Fournisseurs de données .NET personnalisés
-
13-11-2019 - |
Question
Est-il possible d'utiliser un fournisseur de données .NET personnalisé sans l'installer dans le GAC?
Puis-je faire référence à une DLL personnalisée et l'enregistrer dans mon fichier de configuration?
La solution
Oui, vous pouvez enregistrer une implémentation du Dbproviderfactory classe en ajoutant le Section suivante Dans votre fichier de configuration:
<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>
La MyCustomDataProvider
L'assemblage n'a pas à être enregistré dans le GAC mais peut être déployé avec l'application en tant que assemblée privée.
Vous pouvez vous référer au fournisseur de données enregistré par programme en utilisant la valeur spécifiée dans le invariant
attribut. Par exemple, vous pouvez dire à ado.net d'utiliser le MyNamespace.MyCustomProviderFactory
en spécifiant MyCustomProvider
comme le providerName
Dans la chaîne de connexion:
<connectionStrings>
<add name="ConnString"
providerName="MyCustomProvider"
connectionString="MyCustomConnectionString" />
</connectionStrings>
Dans le code, vous pouvez utiliser le même nom de fournisseur avec le Dbproviderfactories.getfactory méthode:
DbProviderFactory factory = DbProviderFactories.GetFactory("MyCustomDataProvider");
où factory
sera une instance du MyNamespace.MyCustomProviderFactory
classer.