Question

Est-il possible de déplacer applicationSettings vers un autre fichier de configuration, comme cela est possible avec connectionStrings ou appSettings?

Lorsque je crée des paramètres pour mon application Web à l'aide du concepteur, la section applicationSettings de mon Web.config est telle que:

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

Je voudrais pouvoir les déplacer dans un autre fichier comme appSettings:

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

Je travaille avec un projet comportant de nombreux paramètres accessibles via une classe générée avec designer et web.config est extrêmement difficile à gérer entre plusieurs environnements. Ce serait encore mieux si je pouvais forcer la classe Settings à utiliser appSettings, pas applicationSettings.

Est-ce possible?

Merci d'avance pour votre aide.

Était-ce utile?

La solution 5

Cette question n’a pas été marquée comme réponse pendant assez longtemps. Eh bien, sous la réponse de marc, il y a des commentaires qui expliquent que c'est impossible. Je ne voulais pas marquer la réponse de marc comme une réponse acceptée car les commentaires disent exactement la chose opposée à la réponse. La réponse est donc que, malheureusement, ce n’est pas possible.

Autres conseils

Waaaay est en retard pour cette question, mais je viens de me cogner la tête contre le mur au-dessus de celui-ci. Il s'avère que vous pouvez le faire, mais pas pour tout le nœud applicationSettings, vous devez créer chaque nœud enfant de applicationSettings séparément. J'ai reçu les informations magiques au bas de MSDN SectionInformation.ConfigSource .

contenu de app.config / web.config

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

contenu de externalfile.config:

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

Oui bien sûr que c'est possible! Toute ConfigurationSection dans l’un de vos fichiers de configuration peut être & Quot; externalisée & Quot; au moyen de configSource = & "otherConfigFile.config &"; attribut.

  

Ce serait encore mieux si je pouvais   forcer la classe Settings à utiliser   appSettings pas applicationSettings.

Pour ce faire, vous devez éviter d'utiliser le joli visuel & "Paramètres &"; classes dans .NET et utilisez directement le ConfigurationManager. De cette façon, vous pouvez définir vos paramètres dans & Lt; appSettings & Gt; et lisez-les en utilisant ConfigurationManager.AppSettings [" keyname "].

Marc

Si c’était mon projet, je supprimerais applicationSettings et déplacerais tout vers la section appSettings. ApplicationSettings a pour valeur que les valeurs peuvent être fortement typées et disponibles pour Intellisense. Ni ceux-ci sont particulièrement avantageux pour votre situation. Bien sûr, ce grand succès de tout déplacer ne vaut pas la peine si vous créez toujours des paramètres via le concepteur.

Hmm ... Je sais que c'est possible, car je savais que nous le faisions dans le cadre d'un travail précédent. Je ne me souviens pas exactement comment, cependant. Je crois que nous utilisions un projet parent pour hériter des paramètres. Il existait une étape manuelle selon laquelle, si nous apportions des modifications à applicationSettings dans un sous-projet, nous devions les copier manuellement dans le projet parent (mais ils ont ensuite été hérités par tous les projets enfants).

Désolé pour le manque de spécificité; Je n'étais pas celui qui a implémenté la solution, et elle est devenue un peu floue pour moi avec le temps. Cependant, je me souviens que nous avons pu le faire et je pense me rappeler avec exactitude comment nous le faisions.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top