【发布时间】:2017-06-09 01:48:04
【问题描述】:
例如,在我的项目文件中,我的 Dictionaries.cs 包含:
public DictionaryInit() {
public Dictionary<int, DictionaryCheckup> H = new Dictionary<int, DictionaryCheckup>()
{
{180000, new DictionaryCheckup {theGrouping="H"}},
{180001, new DictionaryCheckup {theGrouping="H"}},
{180303, new DictionaryCheckup {theGrouping="H"}},
};
public Dictionary<int, DictionaryCheckup> C = new Dictionary<int, DictionaryCheckup>()
{
{180700, new DictionaryCheckup {theGrouping="C"}},
{180201, new DictionaryCheckup {theGrouping="C"}},
{180503, new DictionaryCheckup {theGrouping="C"}},
};
Etc.
}
(DictionaryCheckup 是一个类,get;set;字符串 theGrouping)
这个想法是我想让我的最终用户热交换一个标准,这是有问题的字典类。如果他需要添加 Dictionary U,他只需复制文本文件中的结构,在必要时替换 Key 或 Value,然后从程序中选择它。这会加载它并在运行时替换我的字典类。这可能吗?
经过一番研究,我发现Json和序列化是这样做的一种方法,但是我对它不是很熟悉,或者与读取文本文件有什么区别。这是我找到的一个线程:How do I read and write a C# string Dictionary to a file?。
在这些示例中,我不确定它们如何区分键和值。此外,我认为我无法通过它访问我的 DictionaryCheckup 类,这是 Key 的价值标准。
所以,我的问题是,为简单起见,我是否可以将我的字典类(可能按原样)写入某种文本文件,然后在运行时加载它?还是我必须创建一个var dictionary,然后根据外部文件向它添加键和值?无论如何,我可能会研究 Json 方法的序列化,我只是担心当我的程序与它无关时实现 Web 功能。
【问题讨论】:
-
这是可能的。如果在启动期间文本文件不存在,您可以将初始字典序列化为 JSON 字符串并为此创建一个文本文件。您还可以加载文本文件的内容并将 JSON 字符串反序列化回您的字典。您的方法可能是序列化/反序列化数组或字典列表。
标签: c# parsing dictionary serialization