我有一個PersistenceHandler,它實現了不同類型的持久性(至少它會) 但是,我遇到了一些從文件加載的問題。從PersistenceHandler鑄造反序列化對象
代碼:
static public object Load(string fileName)
{
return _persistence.Load(fileName);
}
使用這種方法從JsonPersistence:
public object Load(string fileName)
{
string readAllText = File.ReadAllText(fileName);
return JsonConvert.DeserializeObject<Dictionary<EnumCategories, CategoryViewModel>>(readAllText);
}
這工作得很好。只要我想序列化到指定的類型。 但是,當我想使用它的任何類型的對象,我不能讓它的工作。 我已經使用聲明類型爲對象,而不是嘗試,然後在它的「目標」
像這樣將它轉換:(我是OFC加載包含了JSON
Employees = (List<EmployeeModel>)PersistenceHandler.Load(_fileName);
我得到一個鑄件例外正確的信息)
其他信息:無法轉換 類型 'Newtonsoft.Json.Linq.JArray' 到類型 的對象 'System.Collections.Generic.List`1 [KanbanBoard.Model.EmployeeModel]'。
我能得到它的工作的唯一辦法是通過鑄造它放在我反序列化在我JsonPersistence類,或者使用newtonsoft類它來回轉換,在目標點(如上面的例子。
這將是很好 - 除了我試圖真的很難讓我的程序即可輕鬆添加功能,以儘可能
我在github上整個項目:https://github.com/Toudahl/KanbanBoard 編輯:我目前在重構工作分支
真棒,這是最完美的解決方案:) 我們havnt學到了很多關於創建通用的東西,但 - 我想我只是可以使用的課程 - 我覺得很愚蠢,因爲沒有在方法上嘗試相同的方法 –
2015-02-07 18:44:08