我有public static class
,我正在尝试从C#中的app.config文件访问appSettings
,我收到了标题中描述的错误。
public static class employee
{
NameValueCollection appSetting = ConfigurationManager.AppSettings;
}
如何让它发挥作用?
答案 0 :(得分:77)
如果该类声明为static,则所有成员也必须是静态的。
static NameValueCollection appSetting = ConfigurationManager.AppSettings;
您确定要让员工班级保持静态吗?你几乎肯定不希望这种行为。你可能最好从类和成员中删除静态约束。
答案 1 :(得分:7)
它说明了它的含义:
让你的课程非静态:
public class employee
{
NameValueCollection appSetting = ConfigurationManager.AppSettings;
}
或成员静态:
public static class employee
{
static NameValueCollection appSetting = ConfigurationManager.AppSettings;
}
答案 2 :(得分:5)
在静态类中声明实例成员是不合法的。静态类无法实例化,因此拥有实例成员(它们永远不可访问)是没有意义的。
答案 3 :(得分:1)
您是否尝试使用类似于?的静态存储类:
public static class employee
{
static NameValueCollection appSetting = ConfigurationManager.AppSettings;
}
答案 4 :(得分:1)
正如John Weldon所说,所有成员在静态类中必须是静态的。尝试
public static class employee
{
static NameValueCollection appSetting = ConfigurationManager.AppSettings;
}
答案 5 :(得分:1)
public static class Employee
{
public static string SomeSetting
{
get
{
return ConfigurationManager.AppSettings["SomeSetting"];
}
}
}
将属性声明为静态。另外,不要费心存储对ConfigurationManager.AppSettings的私有引用。 ConfigurationManager已经是一个静态类。
如果您认为必须存储对appsettings的引用,请尝试
public static class Employee
{
private static NameValueCollection _appSettings=ConfigurationManager.AppSettings;
public static NameValueCollection AppSettings { get { return _appSettings; } }
}
即使默认为私有,也总是提供显式访问说明符(私有,公共等)是一种很好的形式。