c#外部数据(类似于iOS Plist)

本文关键字:iOS Plist 类似于 外部 数据 | 更新日期: 2023-09-27 18:11:15

我正在寻找将简单数据结构外部化到人类可读文件的最佳实践。

我对iOS的plist功能有一些经验(我相信它是类似xml的底层),我想找到类似的东西。

在。net方面,.resx似乎是可行的方法,但正如我所做的研究,每个人都提到本地化,这些数据并不意味着本地化。.resx仍然是答案吗?

如果是这样,是否有一种方法来获得所有.resx数据的字典结构,而不是读取单个条目?我想知道诸如条目数,所有键的数组,所有值的数组等。

c#外部数据(类似于iOS Plist)

如果是我的话,我会避免使用XML。它被设计得很容易解析。它很冗长,不符合人类的可读性。如果可以的话,尽量避免尖括号税。

JSON。这是一个有用的选择。简单,易读,易解析。没有角税率。这是一种选择。YAML是另一个(它是JSON的超集)。

有lisp风格的s表达式(参见wikipedia)。您还可以使用prolog风格的术语来构建您选择的数据结构(也很容易解析)。

还有老派的DOS/Windows INI文件。有很多工具可以解决这些问题,包括。net/clr实现。

你可以从OS x中使用苹果的pList格式,你可以使用它的老式"ASCII"(文本)表示或它的XML表示。

你也可以(首选,IMHO)编写一个定制的/"小"语言来满足你的需求。时下流行的就是"领域特定语言"。我会避免使用Visual Studio/c#/。Net领域特定的语言工具,因为您得到的将是基于xml的。

Terrance Parr出色的ANTLR可以说是语言构建的首选工具。它是用Java编写的,带有一个用于处理语法和解析树的IDE,并且可以针对多种语言(Java, c#, Python, Objective-C, C/c++都是最新的)。还有一些对Scala的支持。对于旧版本,存在一些其他的目标语言,在不同的完整性级别。)

Terrance Parr的书也同样优秀:

  • ANTLR权威参考:构建领域特定语言
  • 语言实现模式:创建您自己的特定领域和通用编程语言

XML(任何格式,不仅仅是resx)或CSV都是常见的选择。XML在代码中更容易使用,只要它是有效的XML。

查看LINQ to XML (http://msdn.microsoft.com/en-us/library/bb387098.aspx)来开始阅读XML