c# - 尝试从键值对列表构建对象时,什么是好的设计?

标签 c# key-value

因此,如果我有一种方法可以解析文本文件并返回 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/

相关文章:

database - 如果要存储的数据多于集群中的 RAM,Hazelcast 和 Scalris 等分布式内存云数据库会发生什么情况?

c# - .NET 使用任何 KeyValue 存储吗?

c# - 带有 TryParseExact 的 FormatException

c# - 媒体文件 wp8 无法使用 Uri 播放

c# - 记住用户输入的 Windows 应用程序

c# - 在 Microsoft Visual Studio 2013 的 WinForms 中启用 Entity Framework 6 for MySql (C#)

c# - 使用 OpenXml 更改 Excel 工作表中的特定单元格背景颜色

perl - 如何从同一个键打印出不同的值?

javascript - 根据对象数组中的键删除对象

javascript - 如何在Javascript中动态创建字典和添加键值对