sexta-feira, 24 de janeiro de 2014

String de conexão diferente para cada desenvolvedor

Estou trabalhando em um projeto com outra empresa. Eu e um colega ficamos algumas horas tentando fazer com quem pudéssemos ter uma string de conexão diferente desta outra empresa sem ficar alterando isso toda hora que formos dar commit do código para eles.

Eles já usavam uma configuração no appSettings para determinar qual string de conexão seria usada. Meu colega descobriu que é possível mudar o valores do appSettings referenciando um arquivo (usando o atributo file que o appSettings possue). Seu web.config fica dessa forma:

(...)
    <connectionStrings>
        <add name="conn1" connectionString="[banco deles]" />
        <add name="conn2" connectionString="[nosso banco]" />
    </connectionStrings>
    <appSettings file="appsettings_desenv.config">
        <add key="DefaultConnectionString" value="conn1" />
    </appSettings>
(...)


Então você cria o arquivo appsettings_desenv.config com este conteúdo (na mesma pasta do web.config):

<?xml version="1.0"?>
<appSettings>
    <add key="DefaultConnectionString" value="conn2" />
</appSettings>


Na sua máquina, este arquivo existindo, DefaultConnectionString passa a valer conn2. Então você pega, no código, a string de conexão a partir da configuração:

var key = ConfigurationManager.AppSettings["DefaultConnectionString"];
var connectionString = ConfigurationManager.ConnectionStrings[key].ConnectionString;


E virá o que existe em conn2. Se a pessoa não possui o arquivo, virá o conn1.

Nenhum comentário:

Postar um comentário