기록 항목 개체가 채워진 내 기록 목록을 저장하고로드하고 싶습니다. 격리 저장소를 통해이 작업을 수행하려고합니다. 사용자가 응용 프로그램을 열고 닫을 때 인터넷 사용 기록이 손실되지 않습니다. 앱이 클릭되면로드 될 수있는 저장됩니다. 나는 주변을 둘러 보았고이 질문을 stackoverflow에서 보았습니다. 그리고 나는 그것을 따라하려고 시도했지만 오류를 보았습니다. Isolated Storage & Saving Multiple Objects.Windows 8 phone 개체 목록 저장 및로드
using System.Xml.Serialization;
using System.Collections.ObjectModel;
using System.IO;
List<HistoryEntry> urls = new List<HistoryEntry>();
public HistoryEntry selectedHistory;
public MainPage()
{
InitializeComponent();
Deserialize<>(urls, ???);
}
void Browser_Navigated(object sender, System.Windows.Navigation.NavigationEventArgs e)
{
HistoryEntry urlObj = new HistoryEntry();
urlObj.URL = url;
urlObj.timestamp = DateTime.Now.ToString("HH:mm");
urlObj.date = url.Remove(url.LastIndexOf('.'));
urls.Add(urlObj);
textBox1.Text = url;
listBox.ItemsSource = null;
listBox.ItemsSource = urls;
Serialize(urlObj, urls);
}
private static void Serialize(string fileName, object source)
{
var userStore = IsolatedStorageFile.GetUserStoreForApplication();
using (var stream = new IsolatedStorageFileStream(fileName, FileMode.Create, userStore))
{
XmlSerializer serializer = new XmlSerializer(source.GetType());
serializer.Serialize(stream, source);
}
}
public static void Deserialize<T>(ObservableCollection<T> list, string filename)
{
list = new ObservableCollection<T>();
var userStore = IsolatedStorageFile.GetUserStoreForApplication();
if (userStore.FileExists(filename))
{
using (var stream = new IsolatedStorageFileStream(filename, FileMode.Open, userStore))
{
XmlSerializer serializer = new XmlSerializer(list.GetType());
var items = (ObservableCollection<T>)serializer.Deserialize(stream);
foreach (T item in items)
{
list.Add(item);
}
}
}
}
직렬화 드의 직렬화를 호출 할 때와 같은 일부 잘못된 인수가 :
여기에 코드
public string URL { get; set; }
public string timestamp { get; set; }
public string date { get; set; }
MainPage 코드 HistoryEntry 클래스입니다. 메소드에 보낼 적절한 값은 무엇이며, 히스토리 오브젝트를 저장하고로드 할 것입니다. 당신이
FileMode가 존재하지 않는 것은 네임 스페이스를 추가하지 않은 것을 의미합니다. 이걸 가지고 있는지 확인하십시오. 'using System.IO Namespace; – Kulasangar
고맙습니다. 편집을 완료했습니다. Serialize 및 Deserialize를 호출하는 동안 오류가 있지만 잘못된 인수가 있기 때문에 @anonshankar – user3795349