因此,如果我有一种方法可以解析文本文件并返回 list of a list of 键值对,并希望从返回的 kvps 中创建对象(每个 kvps 列表代表一个不同的对象),最好的方法是什么?
第一个想到的方法很简单,只需要保留一个关键字列表:
private const string NAME = "name";
private const string PREFIX = "prefix";
并检查我得到的键是否有上面定义的我想要的常量。不过,这是我正在从事的项目的一个相当核心的部分,所以我想把它做好;有没有人有任何更强有力的建议(并不是说上述方法有任何内在的不可靠 - 我只是四处询问)?
编辑:
已要求提供更多详细信息。我在业余时间做一个小游戏,我正在用配置文件构建游戏世界。有四个 - 一个定义所有生物,另一个定义所有区域(及其在 map 中的位置),另一个定义所有对象,最后一个定义各种配置选项和不适合其他地方的东西。对于前三个配置文件,我将根据文件的内容创建对象——它的文本非常多,所以会有很多字符串,比如名称、复数、前缀——诸如此类。配置值都是这样的:
-
key: value
key: value
-
key: value
key: value
-
“-”行表示新的部分/对象。
最佳答案
深入了解 XmlSerializer .即使您被限制不能使用磁盘上的 XML,您也可能想要复制它的一些特性。这可能看起来像这样:
public class DataObject {
[Column("name")]
public string Name { get; set; }
[Column("prefix")]
public string Prefix { get; set; }
}
尽管在文件中包含某种格式版本要小心,否则下一次格式更改时您将陷入 hell 厨房。
关于c# - 尝试从键值对列表构建对象时,什么是好的设计?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49757/