c#外部数据(类似于iOS Plist)
本文关键字:iOS Plist 类似于 外部 数据 | 更新日期: 2023-09-27 18:11:15
我正在寻找将简单数据结构外部化到人类可读文件的最佳实践。
我对iOS的plist功能有一些经验(我相信它是类似xml的底层),我想找到类似的东西。
在。net方面,.resx似乎是可行的方法,但正如我所做的研究,每个人都提到本地化,这些数据并不意味着本地化。.resx仍然是答案吗?
如果是这样,是否有一种方法来获得所有.resx数据的字典结构,而不是读取单个条目?我想知道诸如条目数,所有键的数组,所有值的数组等。
如果是我的话,我会避免使用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