我有一个public static class
,并且我正在尝试从我的C#应用程序配置文件中访问appSettings
,但是我得到了标题中描述的错误。
public static class employee
{
NameValueCollection appSetting = ConfigurationManager.AppSettings;
}
我该如何使这个工作起来?
我有一个public static class
,并且我正在尝试从我的C#应用程序配置文件中访问appSettings
,但是我得到了标题中描述的错误。
public static class employee
{
NameValueCollection appSetting = ConfigurationManager.AppSettings;
}
我该如何使这个工作起来?
static NameValueCollection appSetting = ConfigurationManager.AppSettings;
你确定你想让你的员工类是静态的吗?你几乎肯定不希望那种行为。最好从类和成员中删除静态约束。
这句话的意思是:
将你的类变为非静态的:
public class employee
{
NameValueCollection appSetting = ConfigurationManager.AppSettings;
}
public static class employee
{
static NameValueCollection appSetting = ConfigurationManager.AppSettings;
}
在静态类中声明实例成员是不合法的。静态类无法实例化,因此具有实例成员没有任何意义(它们永远无法被访问)。
我知道这篇文章有点旧,但是...
我能够完成这个操作,我的问题在于我忘记将属性设置为静态。
public static class MyStaticClass
{
private static NonStaticObject _myObject = new NonStaticObject();
//property
public static NonStaticObject MyObject
{
get { return _myObject; }
set { _myObject = value; }
}
}
public static class employee
{
static NameValueCollection appSetting = ConfigurationManager.AppSettings;
}
正如John Weldon所说,静态类中的所有成员都必须是静态的。请尝试:
public static class employee
{
static NameValueCollection appSetting = ConfigurationManager.AppSettings;
}
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; } }
}
即使默认是私有的,始终给出明确的访问说明符(private、public等)是一个好习惯。