2013-04-17 2 views
3

나는 C#을 사용 윈도우 8 애플리케이션을 개발하려고하고 내가 그것에 대해 LocalSettings를 사용윈도우 8 앱 로컬 저장소

List<string> names = new List<string>(); 
List<DateTime> dates = new List<DateTime>(); 

지역 설정에서이 목록의 (문자열과 날짜 시간)을 저장할 필요가이 페이지에 따르면 : 나는 목록을 저장하고 저장된 설정에서 그들을 다시 얻고 동안 http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh700361

Windows.Storage.ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings; 

는하지만 문제가있다.

String List 및 DateTime 목록 유형 객체 (또는 이러한 종류의 데이터를 저장하는 다른 방법)를 저장하고 검색하기 위해 몇 줄의 문자를 보내어 도울 수 있습니까?

감사합니다.

localSettings.Values["names"] = names 
localSettings.Values["dates"] = dates 

을 그리고 이것은 읽기 :

답변

0

매장이 시도

dates = (List<DateTime>) localSettings.Values["dates"]; 

편집 : 내가 잘못처럼 보이는, 당신은이 방법의 기본 유형을 저장할 수있다. 따라서 MemoryStream을 사용하고 버퍼를 저장함으로써 모든 것을, 말하자면 byte []로 직렬화해야 할 수도 있습니다.

+0

코드가 올바르게 보이지만 시도했습니다. 응용 프로그램이 올바르게 시작되지만 런타임에이 오류가 발생합니다. 'System.Exception'유형의 예외가 mscorlib.dll에서 발생했지만 사용자 코드에서 처리되지 않았습니다. WinRT 정보 : 쓸 값을 직렬화하려는 중 오류가 발생했습니다. 응용 프로그램 데이터 저장소 추가 정보 :이 유형의 데이터는 지원되지 않습니다. 이 예외 처리기가 있으면 프로그램을 안전하게 계속할 수 있습니다. – cewrld

+1

동일한 문제가 있습니다. 문제는 C# 에서처럼 런타임 유형 (DateTimeOffset)이 아닌 것처럼 DateTime을 유지하려고 할 때 ... DateTimeOffset과 DateTime을 변환하는 것입니다. 좀 더 세련된 솔루션이 있어야합니다. . WP8 IsolatedStorage에서 잘 작동 –

+0

var applicationData = Windows.Storage.ApplicationData.흐름; var localSettings = applicationData.LocalSettings; –

3

Windows 8 Isolated storage 하나 libarary라고, 그것은 XML 직렬화를 사용합니다. objectList<T>을 저장할 수 있습니다. 사용법 또한 매우 쉽습니다. 프로젝트에 DLL을 추가하면 데이터 저장 방법이 생깁니다. 격리 된 저장소에

public class Account 
{ 
    public string Name { get; set; } 
    public string Surname{ get; set; } 
    public int Age { get; set; } 
} 

저장 : 격리 된 저장소에서

Account obj = new Account{ Name = "Mario ", Surname = "Rossi", Age = 36 }; 
var storage = new Setting<Account>();   
storage.SaveAsync("data", obj); 

로드 : 저장 격리 된 저장소의 목록 :

당신이 목록을 저장하려면 또한

public async void LoadData() 
{  
    var storage = new Setting<Account>(); 
    Account obj = await storage.LoadAsync("data");  
} 

List<Account> accountList = new List<Account>(); 
accountList.Add(new Account(){ Name = "Mario", Surname = "Rossi", Age = 36 }); 
accountList.Add(new Account(){ Name = "Marco", Surname = "Casagrande", Age = 24}); 
accountList.Add(new Account(){ Name = "Andrea", Surname = "Bianchi", Age = 43 }); 

var storage = new Setting<List<Account>>(); 
storage.SaveAsync("data", accountList); 

격리 된 저장소에서 목록로드 :

public async void LoadData() 
{  
    var storage = new Setting<List<Account>>();  
    List<Account> accountList = await storage.LoadAsync("data");  
} 
+0

이 코드의 설정은 무엇입니까? –

+0

도서관의 목적은 https://isolatedstoragew8.codeplex.com/입니다. – Xyroid

관련 문제