asp.net中的自定义配置文件

时间:2011-11-01 10:27:16

标签: asp.net configuration settings configuration-files application-settings

在我的项目中,我需要存储复杂的应用程序设置,我不希望将其存储在数据库中。

应用程序设置可通过管理ui进行编辑/更改等。

因此,如果我在config中存储设置,每次更改配置时,应用程序都会重新启动。

所以第二个想法是从项目中存储的文件(例如“AppSettings.conf”)中加载外部文件。

问题很简单:是否可以在不重新启动应用程序的情况下从外部文件加载和保存设置?

谢谢

3 个答案:

答案 0 :(得分:0)

是的,将设置存储在XML文件中,您可以很好地读取/写入XML文件。但是,您无法将存储在web.config中的任何现有组件(例如<authentication><authorization>元素)指向该XML文件......这将无效。只有您的自定义设置。

HTH。

答案 1 :(得分:0)

不是创建自定义配置文件,而是为web.config创建自定义配置部分:

这只是一个例子:

public class SomeConfigurationSection: ConfigurationSection
{
    [ConfigurationProperty("configurationData")]
    public string ConfigurationData
    {
        get
        {
            return this["configurationData"] as string;
        }
        set
        {
            this["configurationData"] = value;
        }
    }

    [ConfigurationProperty("otherConfigurationData")]
    public int OtherConfigurationData
    {
        get
        {
            return Convert.ToInt32(this["otherConfigurationData"]);
        }
        set
        {
            this["otherConfigurationData"] = value;
        }
    }
} 

修改

另一种可能的解决方案是使用Properties文件夹下的Settings.setttings文件。我相信你可以在这里添加,编辑和删除设置而无需重启应用程序:

//add a setting
Properties.Settings.Default.Context.Add("foo", "bar");

//edit a setting
Properties.Settings.Default.Context["foo"] = "bar";

//remove a setting
Properties.Settings.Default.Context.Remove("foo");

您可以在Properties文件夹下或在网络应用程序的属性窗口中访问此文件(属性&gt;设置)。

答案 2 :(得分:0)

最后决定在db。中保存/加载应用程序设置。