C#外部数据(类似于iOS Plist)
作者:互联网
我正在寻找有关将简单数据结构外部化为可读文件的最佳实践.
我对iOS的plist功能(我相信它像XML一样)有一些经验,我想找到类似的东西.
在.NET方面,.resx似乎是行之有效的方法,但是在我进行研究时,每个人都提出了本地化的想法,而这些数据并不意味着要本地化. .resx仍然是答案吗?
如果是这样,是否有一种方法可以获取所有.resx数据的字典结构,而不是读取单个条目?我想知道诸如条目数,所有键的数组,所有值的数组等内容.
解决方法:
考虑到我的想法,我会避免使用XML.它的设计易于解析.它很冗长,不是为人类可读而设计的.如果可以,请避免使用尖括号税.
有JSON.这是一个有用的选择.简单,易于阅读,易于解析.没有尖括号税.那是一种选择. YAML是另一个(它是JSON的超集).
有LISP风格的S-expressions(另请参见wikipedia).您也可以使用Prolog样式的术语来构造您选择的数据结构(也很容易解析).
还有老式的DOS / WindowsINI files.有多种工具可以解决这些问题,包括.Net / CLR实现.
您可以仅从OS X合作Apple’s pList format.可以使用其old-school “ASCII” (text) representation或XML representation.
您也可以(首选IMHO)编写一种自定义/“小”语言来专门满足您的需求.如今,流行词du jour是“领域特定语言”.我会避免使用Visual Studio / C#/.Net域特定的语言工具,因为您将获得的都是基于XML的.
Terrance Parr出色的ANTLR可以说是语言构建的首选工具.它用Java编写,带有用于处理语法和解析树的IDE,并且可以针对多种语言(Java,C#,Python,Objective-C,C/C++都是最新的.对Scala的支持如下:好了,还有一些针对较旧版本的目标语言,它们的完整性各不相同.)
Terrance Parr的书同样出色:
> The Definitive ANTLR Reference: Building Domain-Specific Languages
> Language Implementation Patterns: Create Your Own Domain-Specific and General Programming Languages
标签:resx,xml,c,net 来源: https://codeday.me/bug/20191102/1988918.html