2011-10-13 25 views
3

我正在尋找將簡單數據結構外化爲人類可讀文件的最佳實踐。C#外部數據(類似於iOS Plist)

我有一些iOS的plist功能(我相信是類似於XML的underneith)的經驗,我想找到類似的東西。

在.NET方面,.resx似乎是要走的路,但正如我研究的一樣,每個人都提出了本地化,而這些數據並不是本地化的。 .resx仍然是答案嗎?

如果是這樣,有沒有辦法讓所有.resx數據的字典結構,而不是閱讀單個條目?我想知道條目數量,所有鍵的數組,所有值的數組等等。

回答

2

鑑於我的druthers,我會避免XML。它的設計很容易解析。這是冗長的,它不是人類可讀性設計的。如果可以的話,避免使用尖括號稅。

還有JSON。這是一個有用的選擇。簡單,易於閱讀,易於解析。沒有角度稅稅。這是一種選擇。 YAML是另一個(它是JSON的超集)。

有LISP式S-expressions(另請參閱wikipedia)。你也可以使用Prolog風格的術語來構造你選擇的數據結構(也很容易解析)。

還有老派的DOS/Windows INI files。有多種工具可用於爭奪它們,包括.Net/CLR實現。您可以使用其old-school "ASCII" (text) representationXML representation

你也可以(首選,恕我直言)編寫一個自定義/「小」的語言,以滿足您的需求具體。最近流行詞是即日,它是「特定領域的語言」。我會避免使用Visual Studio/C#/ .Net特定於領域的語言工具,因爲你得到的將是基於XML的。

Terrance Parr出色的ANTLR可以說是語言建設的首選工具。它是用Java編寫的,附帶一個用於處理語法和分析樹的IDE,可以定位多種語言(Java,C#,Python,Objective-C,C/C++都是最新的。 。以及對舊版本存在的一些其他目標語言,在不同的完整性級別)

特倫斯帕爾的書籍也同樣優秀。

+0

介紹解釋「尖括號稅」是什麼?聽起來像B.S. – qJake

+0

輸入一個不平凡的XML片段;現在以更簡單的格式輸入它,例如JSON。正如帕爾所說:「人類天生就具有將結構應用於人物(句子)流的能力,因此,添加標記符號只會使我們更難閱讀並且更難以打字。」請參閱http://www.ibm.com/developerworks/xml/library/x-sbxml/index.html和http://www.codinghorror.com/blog/2008/05/xml-the-angle-bracket-tax html的。 XML的一個重要設計目標是促進異構和未知系統之間的數據傳輸。配置文件...不是很多。 –