Domanda

È possibile spostare applicationSettings in un altro file di configurazione come è possibile con connectionStrings o appSettings?

Quando creo le Impostazioni per la mia applicazione web usando il designer ottengo la sezione applicationSettings nel mio web.config come:

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

Vorrei essere in grado di spostarli in un altro file come appSettings:

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

Sto lavorando a un progetto a cui sono accessibili molte impostazioni tramite la classe generata con designer e web.config che è estremamente difficile da mantenere tra più ambienti. Sarebbe ancora meglio se potessi forzare la classe Settings ad usare appSettings non applicationSettings.

È possibile?

Grazie in anticipo per l'aiuto.

È stato utile?

Soluzione 5

Questa domanda non è stata contrassegnata come risposta per un periodo piuttosto lungo. Bene, sotto la risposta di marc ci sono commenti che spiegano che questo è impossibile. Non volevo contrassegnare la risposta di marc come risposta accettata perché i commenti dicono esattamente l'opposto della risposta. Quindi la risposta è che, sfortunatamente, non è possibile.

Altri suggerimenti

Waaaay in ritardo per questa domanda, ma ho appena sbattuto la testa contro il muro su questo. Si scopre che puoi farlo, non solo per l'intero nodo applicationSettings, devi fare ogni nodo figlio dell'applicazioneSettings separatamente. Ho ricevuto le informazioni magiche dal fondo del Articolo MSDN SectionInformation.ConfigSource .

contenuto app.config / web.config

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

contenuti externalfile.config:

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

Sì, certo, è possibile! Qualsiasi ConfigurationSection in uno qualsiasi dei file di configurazione può essere & Quot; externalized & Quot; tramite configSource = " otherConfigFile.config " attributo.

  

Sarebbe ancora meglio se potessi   impone l'utilizzo della classe Settings   appSettings non applicationSettings.

Per farlo, devi allontanarti dall'uso del simpatico " Impostazioni " classi in .NET e utilizzare direttamente ConfigurationManager. In questo modo, puoi mettere le tue impostazioni in & Lt; appSettings & Gt; e leggili usando ConfigurationManager.AppSettings [" keyname "].

Marc

Se fosse il mio progetto, mi sbarazzerei di applicationSettings e sposterei tutto nella sezione appSettings. Il valore di applicationSettings è che i valori possono essere fortemente digitati e disponibili per Intellisense. Nessuno di questi è particolarmente vantaggioso per la tua situazione. Naturalmente, quel grande successo di spostare tutto non vale la pena se stai ancora creando impostazioni attraverso il designer.

Hmm ... So che è possibile, perché so che lo stavamo facendo in un lavoro precedente. Non ricordo esattamente come, però. Credo che avessimo un progetto principale che stavamo usando per ereditare le impostazioni e che ci fosse un passaggio manuale in base al quale se avessimo apportato modifiche alle impostazioni dell'applicazione in un sottoprogetto, avremmo dovuto copiare manualmente le modifiche al progetto principale (ma poi sono stati ereditati da tutti i progetti figlio).

Ci scusiamo per la mancanza di specificità; Non sono stato io a implementare la soluzione ed è diventato un po 'confuso per me nel tempo. Ricordo però che siamo riusciti a farlo, e penso che i miei ricordi siano accurati su come lo stavamo facendo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top