Nella prima parte abbiamo visto come creare una semplice sezione di configurazione , oggi creeremo il primo tassello dello strato d'accesso dati.
Come accennato, mapperemo le nostre entità alle relative tabelle/colonne utilizzando un file di configurazione xml, sicuramente più flessibile rispetto a decorare classi e proprietà.
Creiamo una libreria di classi e chiamiamola TheSimpleBeach.Data.
La mappatura tra entità /tabelle è affidata alle classi derivate da MappingSource, noi utilizzeremo l'XmlMappingSource.
Il nostro compito è quindi quello ci caricare il file XML per creare l'oggetto XmlMappingSource.
Aggiungiamo una nuova classe e chiamiamola MappingSourceRepository, compito della classe è anche quello di memorizzare in una collezione gli oggetti XmlMappingSource già creati, per risparmiare l'onere di consumare ogni volta uno stream.
using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Data.Linq; using System.IO; using System.Xml; namespace TheSimpleBeach.Data { public static class MappingSourceRepository { private static Dictionary<string, XmlMappingSource> _repository; static MappingSourceRepository() { _repository = new Dictionary<string, XmlMappingSource>(2); } static public XmlMappingSource GetXmlMappingSource(string path) { if (string.IsNullOrEmpty(path)) { throw new ArgumentNullException("path"); } else { XmlMappingSource _mappingSource = null; _repository.TryGetValue(path, out _mappingSource); if (_mappingSource == null) { try { if (File.Exists(path)) { using (Stream _stream = File.OpenRead(path)) { _mappingSource = XmlMappingSource.FromStream(_stream); _repository.Add(path, _mappingSource); } } } catch (Exception ex) { throw new ApplicationException("impossibile recuperare il file di mapping", ex); } } return _mappingSource; } } } }
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
- Modificare il controllo TreeView, il 2 dicembre 2008 alle 19:27
- Perfezioniamo il ProfileDataSorce, il 13 ottobre 2008 alle 11:14
- Un DataSource per il Profile, il 10 ottobre 2008 alle 15:06
- TrueSpace 7 gratuito, il 24 luglio 2008 alle 10:59
- adesso dico la mia sull'Iphone, il 22 luglio 2008 alle 10:33
- Come tutto ebbe inizio, il 21 luglio 2008 alle 09:22