C# - Json.NET Config?
本文关键字:Config NET Json | 更新日期: 2023-09-27 17:56:48
我正在尝试使用 Json.NET 制作一个配置读取器类。
这是类:
public sealed class ConfigFile : Dictionary<string, object>
{
public string FileName { get; private set; }
public ConfigFile(string fileName)
{
this.FileName = fileName;
this.Load();
}
private void Load()
{
string contents = File.ReadAllText(this.FileName);
JsonTextReader reader = new JsonTextReader(new StringReader(contents));
string lastKey = "";
while (reader.Read())
{
if (reader.TokenType == JsonToken.PropertyName)
{
lastKey = reader.Value.ToString();
}
else
{
if (this.ContainsKey(lastKey))
{
continue;
}
this.Add(lastKey, reader.Value);
}
}
}
它工作得很好。但是,它会逐行读取。这意味着如果我得到一个像列表这样的对象,它将无法正确解析它。
我有几个问题。
- Json.NET 的反序列化程序如何知道如何正确读取 .json 文件并强制转换为正确的类型?如何在课堂上模仿相同的行为?
- 如何使用与 JSON 中相同的读取行为。Net的反序列化程序在我的类中,所以我可以正确读取配置文件?
谢谢。
我强烈建议挖掘Newtonsoft.Json的来源。您似乎正在寻找的操作分为ReadInternal
方法和以下Parse*
方法。请看这里
当然,你可以通过阅读代码学到很多东西,看起来finite state machine
主要是抽象,允许处理对象的读取和写入。