Provedores de dados .NET personalizados
-
13-11-2019 - |
Pergunta
É possível usar um provedor de dados .NET personalizado sem instalá-lo no GAC?
Posso fazer referência a uma DLL personalizada e registrá-la em meu arquivo de configuração?
Solução
Sim, você pode registrar uma implementação do DbProviderFactory classe adicionando o seção seguinte no seu arquivo de configuração:
<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>
O MyCustomDataProvider
assembly não precisa ser registrado no GAC, mas pode ser implantado junto com o aplicativo como um assembleia privada.
Você pode consultar o provedor de dados registrado programaticamente usando o valor especificado no campo invariant
atributo.Por exemplo, você poderia dizer ao ADO.NET para usar o MyNamespace.MyCustomProviderFactory
especificando MyCustomProvider
Enquanto o providerName
na string de conexão:
<connectionStrings>
<add name="ConnString"
providerName="MyCustomProvider"
connectionString="MyCustomConnectionString" />
</connectionStrings>
No código, você pode usar o mesmo nome de provedor com o DbProviderFactories.GetFactory método:
DbProviderFactory factory = DbProviderFactories.GetFactory("MyCustomDataProvider");
onde factory
será um exemplo do MyNamespace.MyCustomProviderFactory
aula.