属性设置没有资源库

本文关键字:资源库 设置 属性 | 更新日期: 2023-09-27 18:33:36

我决定使用 Properties.Settings 来存储我的 ASP.net 项目的一些应用程序设置。 但是,在尝试修改数据时,我收到一个错误The property 'Properties.Settings.Test' has no setter,因为这是生成的,我不知道我应该怎么做才能改变它,因为我以前的所有 C# 项目都没有这个问题。

属性设置没有资源库

我的猜测是你用Application范围而不是User范围定义了属性。应用程序级属性是只读的,只能在web.config文件中编辑。

我根本不会在 ASP.NET 项目中使用 Settings 类。写入web.config文件时,ASP.NET/IIS 回收应用程序域。如果您定期编写设置,则应使用其他一些设置存储(例如您自己的 XML 文件)。

正如 Eli Arbel 已经说过的那样,您不能从应用程序代码中修改用 web.config 编写的值。您只能手动执行此操作,但随后应用程序将重新启动,这是您不想要的。

下面是一个简单的类,可用于存储值并使其易于阅读和修改。如果您从 XML 或数据库读取,并且取决于是否要永久存储修改后的值,只需更新代码以满足您的需求。

public class Config
{
    public int SomeSetting
    {
        get
        {
            if (HttpContext.Current.Application["SomeSetting"] == null)
            {
                //this is where you set the default value 
                HttpContext.Current.Application["SomeSetting"] = 4; 
            }
            return Convert.ToInt32(HttpContext.Current.Application["SomeSetting"]);
        }
        set
        {
            //If needed add code that stores this value permanently in XML file or database or some other place
            HttpContext.Current.Application["SomeSetting"] = value;
        }
    }
    public DateTime SomeOtherSetting
    {
        get
        {
            if (HttpContext.Current.Application["SomeOtherSetting"] == null)
            {
                //this is where you set the default value 
                HttpContext.Current.Application["SomeOtherSetting"] = DateTime.Now;
            }
            return Convert.ToDateTime(HttpContext.Current.Application["SomeOtherSetting"]);
        }
        set
        {
            //If needed add code that stores this value permanently in XML file or database or some other place
            HttpContext.Current.Application["SomeOtherSetting"] = value;
        }
    }
}

在这里:http://msdn.microsoft.com/en-us/library/bb397755.aspx

是您问题的解决方案。