尝试使用JObject从文件解析json时出现C#asp.net错误

时间:2018-04-23 14:48:58

标签: c# asp.net json

这是我尝试运行的代码:

JObject configInfo = JObject.Parse(File.ReadAllText("config.json"));

const string ServerName = (string)configInfo["servername"];

看起来很简单,但我一直收到这个错误:

  

字段初始值设定项无法引用非静态字段,方法或属性' AdminTools_Admin_ManageElements.configInfo'

有人能告诉我这里发生了什么吗?

1 个答案:

答案 0 :(得分:2)

错误意味着您在类级别执行此操作,作为初始化该类中字段的一部分:

class SomeClass
{
    JObject configInfo = JObject.Parse(File.ReadAllText("config.json"));

    const string ServerName = (string)configInfo["servername"];
}

错误告诉您的是,您无法初始化字段,具体取决于此类其他字段的初始化。 (而你肯定无法从运行时动态值创建常量。)

这可能是在方法内部做的事情。反对从构造函数中的文件读取一段时间的潜在论据,请考虑这样的事情:

class SomeClass
{
    JObject configInfo;
    string ServerName;

    public SomeClass()
    {
        configInfo = JObject.Parse(File.ReadAllText("config.json"));
        ServerName = (string)configInfo["servername"];
    }
}

基本上,您尝试在类的定义中放置过多的动态逻辑,其中逻辑需要在类的操作中发生。定义只是结构。解析输入和动态设置值之类的事情都发生在方法中。