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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top