Existem situações onde é necessário armazenar informações na estação do cliente.
A classe abaixo permite acessar esta área através do Silverlight, onde poderão ser salvos arquivos, e objetos de configuração, como ID do usuário logado, etc.…
1: using System;
2: using System.Net;
3: using System.IO.IsolatedStorage;
4: using System.IO;
5: using System.Runtime.Serialization;
6:
7: namespace MyLibrary.UI.SL
8: {
9:
10: /// <summary>
11: /// Classe de gerenciamento da Isolated Storage
12: /// </summary>
13: public static class IsolatedStorageCacheManager
14: {
15: /// <summary>
16: /// Persistem em um arquivo na Isolated Storage o conteúdo serializado do objeto
17: /// </summary>
18: /// <typeparam name="T">Tipo do Objeto</typeparam>
19: /// <param name="filename">Nome do Arquivo </param>
20: /// <param name="obj">objeto a ser salvo na Isolated Storage</param>
21: public static void Store<T>(string filename, T obj)
22: {
23: using (var appStore = IsolatedStorageFile.GetUserStoreForApplication())
24: {
25: using (var fileStream = appStore.OpenFile(filename, FileMode.Create))
26: {
27: var serializer = new DataContractSerializer(typeof(T));
28: serializer.WriteObject(fileStream, obj);
29: }
30: }
31: }
32:
33: /// <summary>
34: /// Retorna o objeto que esta serializado no arquivo da Isolated Storage
35: /// </summary>
36: /// <typeparam name="T">Tipo do Objeto</typeparam>
37: /// <param name="filename">nome do Arquivo </param>
38: /// <returns></returns>
39: public static T Retrieve<T> (string filename)
40: {
41: T obj = default(T);
42: using (var appStore = IsolatedStorageFile.GetUserStoreForApplication())
43: {
44: if (appStore.FileExists(filename))
45: {
46: using (var fileStream = appStore.OpenFile(filename, FileMode.Open))
47: {
48: var serializer = new DataContractSerializer(typeof(T));
49: obj = (T)serializer.ReadObject(fileStream);
50: }
51: }
52: return obj;
53: }
54: }
55:
56: /// <summary>
57: /// Salva o objeto nas configurações do site (SiteSettings)
58: /// </summary>
59: /// <typeparam name="T">Tipo do Objeto</typeparam>
60: /// <param name="chave">chave de acesso a configuração</param>
61: /// <param name="valor">objeto a ser salvo</param>
62: public static void AddSetting<T>(string chave, T valor)
63: {
64: if (!IsolatedStorageSettings.SiteSettings.Contains(chave))
65: IsolatedStorageSettings.SiteSettings.Add(chave, valor);
66: else
67: IsolatedStorageSettings.SiteSettings[chave] =valor;
68: }
69:
70: /// <summary>
71: /// Obtem objeto das configurações do site (SiteSettings)
72: /// </summary>
73: /// <typeparam name="T">Tipo do Objeto</typeparam>
74: /// <param name="chave">chave de acesso a configuração</param>
75: /// <returns></returns>
76: public static T GetSetting<T>(string chave)
77: {
78: if (IsolatedStorageSettings.SiteSettings.Contains(chave))
79: return (T)IsolatedStorageSettings.SiteSettings[chave];
80: else
81: return default(T);
82: }
83: }
84: }
Gostou? Não Gostou? Então comenta ai!
Nenhum comentário:
Postar um comentário