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