我有上已經儲存像下面行的一些hundereds一個JSON文件..數據一次性
[
{
"Id": "1",
"Name": "A"
},
{
"Id": "2",
"Name": "B"
}
]
我想這個加載到一個類的集合。這些數據是靜態的,不會改變,所以我只需要加載一次。
我創建了一個類,並將其加載到私有構造函數中並加載到我在該類中的集合中。
public sealed class JsonLoader : IJsonloader
{
private readonly IEnumerable<Product> products = new List<Product>();
private JsonLoader()
{
using (var r = new StreamReader("data.json"))
{
var json = r.ReadToEnd();
products = //deserialse the json here
}
}
public static IEnumerable<Product> Products => this.products;
}
使用結構映射singleton選項實現單例。我想知道我的實施方式是否正確,或者如果這可以進一步改善?
或任何其他最好的辦法嗎?任何幫助非常感謝:)
是否有意識的設計決定不使用類似'Newtonsoft.Json'這樣的庫來進行實際的序列化?問題是,即使你只想讀取文件一次,通過調用ReadToEnd,你會看到整個文件競爭並從它們中創建一個字符串 - 你放棄了流式傳輸。使用lib可以避免這種情況,也不會重新實現其他人已經很好解決的問題。 –