0
我正在嘗試使用Json.NET製作配置讀取器類。C# - 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的Deserializer如何知道如何正確讀取.json文件並將其轉換爲正確的類型?我怎樣才能模仿我班上的同一行爲?
- 如何在我的類中使用JSON.Net Deserializer中使用的相同閱讀行爲,以便我可以正確讀取配置文件?
謝謝。
我已通過調用Read來使用ReadInternal。但是,就像我說的那樣,它逐行讀取,這不是我正在尋找的。我想要在JsonConvert.DeserializeObject中使用相同的行爲,以便它可以讀取所有內容並將其添加到字典中,而不是將其分配給T. –
您可以實現自己的貪婪邏輯。加載所有內容並解析整個片段。仍然沒有得到你的問題是什麼?原始的源代碼足以對所有的邏輯進行逆向工程,不是嗎? –