Pergunta

É possível mover applicationSettings para outro arquivo de configuração como é possível com connectionStrings ou appSettings?

Quando crio Configurações para minha aplicação web usando o designer fico seção applicationSettings no meu web.config tais como:

  <applicationSettings>
    <TestWebApplication.Properties.Settings>
      <setting name="AnotherSetting" serializeAs="String">
        <value>Another setting value</value>
      </setting>
    </TestWebApplication.Properties.Settings>
  </applicationSettings>

Eu gostaria de ser capaz de movê-los para outro arquivo como appSettings:

<appSettings configSource="config\appsettings.config"/>

Eu estou trabalhando com um projeto que tem um monte de configurações acessados ??através de classe gerada com o designer e web.config é extremamente difícil de manter entre vários ambientes. Seria ainda melhor se eu poderia forçar classe configurações usar appSettings não applicationSettings.

É possível?

Agradecemos antecipadamente para a ajuda.

Foi útil?

Solução 5

Esta questão não foi marcado como resposta por muito tempo. Bem, em resposta marc_s existem comentários que explicam que isso é impossível. Eu não queria marcar marc_s resposta como resposta aceita porque os comentários dizer coisa exatamente o oposto do que a resposta. Portanto, a resposta é que, infelizmente, não é possível.

Outras dicas

Waaaay atrasado para esta pergunta, mas eu tenho apenas batendo a cabeça contra a parede sobre este. Acontece que você pode fazer isso, não apenas para o nó applicationSettings inteiras, você tem que fazer cada nó filho dos applicationSettings separadamente. Eu tenho a informação magia do fundo do artigo MSDN SectionInformation.ConfigSource .

app.config / web.config conteúdos

<applicationSettings>
    <TestWebApplication.Properties.Settings configSource="externalfile.config" />
</applicationSettings>

externalfile.config conteúdo:

<TestWebApplication.Properties.Settings>
    <setting name="AnotherSetting" serializeAs="String">
        <value>Another setting value</value>
    </setting>
</TestWebApplication.Properties.Settings>

Sim, claro que é possível! Qualquer ConfigurationSection em qualquer um dos seus arquivos de configuração pode ser "externalizado" por meio do atributo configSource = "otherConfigFile.config".

Seria ainda melhor se eu pudesse força Configurações de classe para uso appSettings não applicationSettings.

A fim de fazer isso, você precisa se afastar de usar os bons visuais aulas "Configurações" no .NET e usar o ConfigurationManager diretamente. Dessa forma, você pode colocar as suas definições em e lê-los no uso ConfigurationManager.AppSettings [ "nome-chave"].

Marc

Se fosse o meu projeto, eu livrar-se do applicationSettings e mover tudo para a seção appSettings. O valor da applicationSettings é que os valores podem ser fortemente tipado e disponível para Intellisense. Nenhuma das duas coisas são especialmente vantajosos para a sua situação. Claro, que grande sucesso de mover tudo não vale a pena se você ainda está criando definições através do designer.

Hmm ... Eu sei que isso é possível, porque eu sei que estávamos fazendo isso em um trabalho anterior. Não me lembro exatamente como, embora. Eu acredito que tivemos um projeto pai que estávamos usando para herdar as configurações, e havia uma etapa manual pelo qual se fez alterações para as applicationSettings em um subprojeto, precisávamos copiar manualmente as alterações para o projeto pai (mas em seguida, eles foram herdados por todos os projetos filho).

Desculpem a falta de especificidade; Eu não era a pessoa que implementou a solução, e ele ficou um pouco confuso para mim ao longo do tempo. Eu me lembro que fomos capazes de fazer isso, porém, e eu acho que minhas lembranças são precisos a respeito de como nós estávamos fazendo isso.

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