Moving Settings to another config file

后端 未结 5 1493
终归单人心
终归单人心 2020-12-15 09:51

Is it possible to move applicationSettings to another config file as it is possible with connectionStrings or appSettings?

When I create Settings for my web applica

相关标签:
5条回答
  • 2020-12-15 10:33

    This question was not marked as answer for quite a long time. Well, under marc_s answer there are comments that explain that this is impossible. I didn't want to mark marc_s answer as accepted answer because the comments say exactly opposite thing than the answer. So the answer is that, unfortunately, it is not possible.

    0 讨论(0)
  • 2020-12-15 10:34

    Hmm... I know this is possible, because I know we were doing this at a previous job. I do not remember exactly how, though. I believe that we had a parent project that we were using to inherit the settings from, and there was a manual step by which if we made changes to the applicationSettings in a subproject, we needed to manually copy the changes to the parent project (but then they were inherited by all the child projects).

    Sorry for the lack of specificity; I wasn't the one who implemented the solution, and it's gotten a bit fuzzy for me over time. I do recall that we were able to do this, though, and I think my recollections are accurate as to how we were doing it.

    0 讨论(0)
  • 2020-12-15 10:39

    Yes of course it's possible! Any ConfigurationSection in any of your config files can be "externalized" by means of the configSource="otherConfigFile.config" attribute.

    It would be even better if I could force Settings class to use appSettings not applicationSettings.

    In order to do that, you need to get away from using the nice visual "Settings" classes in .NET and use the ConfigurationManager directly. That way, you can put your settings into <appSettings> and read them in using ConfigurationManager.AppSettings["keyname"].

    Marc

    0 讨论(0)
  • 2020-12-15 10:39

    If it were my project, I'd get rid of the applicationSettings and move everything to the appSettings section. The value of applicationSettings is that the values can be strongly typed and available to Intellisense. Neither of those are especially advantageous to your situation. Of course, that big hit of moving everything isn't worth it if you are still creating settings through the designer.

    0 讨论(0)
  • 2020-12-15 10:42

    Waaaay late for this question, but I've just been banging my head against the wall over this one. Turns out you can do this, just not for the entire applicationSettings node, you have to do each child node of the applicationSettings separately. I got the magic info from the bottom of the MSDN SectionInformation.ConfigSource article.

    app.config/web.config contents

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

    externalfile.config contents:

    <TestWebApplication.Properties.Settings>
        <setting name="AnotherSetting" serializeAs="String">
            <value>Another setting value</value>
        </setting>
    </TestWebApplication.Properties.Settings>
    
    0 讨论(0)
提交回复
热议问题