2014-03-29 127 views
3

我使用JSON.NET 6.0.1版本,在這裏下面爲什麼警告Newtonsoft.Json.JsonConvert.DeserializeObjectAsync

var text = await FileHelper.ReadFileAsync(folderSetting, fileName); 
var items = await JsonConvert.DeserializeObjectAsync<ObservableCollection<ItemModel>>(text); 

我的代碼,但我的Visual Studio警告

警告7' Newtonsoft.Json.JsonConvert.DeserializeObjectAsync(string)'已過時:'DeserializeObjectAsync已過時。使用Task.Factory.StartNew方法反序列化JSON異步:Task.Factory.StartNew(()=> DeserializeObject(值))」

+0

在我的測試DeserializeObjectAsync比同步版本慢5倍。 – MatthewMartin

回答

11

作者決定,這不是圖書館的責任提供庫異步包裝並將其標記爲過時。 (見http://blogs.msdn.com/b/pfxteam/archive/2012/03/24/10287244.aspx)。在將來的版本中,這些方法將被刪除。你應該這樣做,而不是:

var result = await 
    Task.Factory.StartNew(() => JsonConvert.DeserializeObject<MyObject>(jsonText));