in questo ultimo mesetto di lavoro sto realizzando un sito in più lingue ho deciso vuoi per comodità vuoi per manutenzione di creare un database per ogni lingua, da quà la necessita di cambiare la stringa di connessione al "volo".
ho deciso di memorizzare i dati in una classe ad hoc e poi serializzarla in un file .config (un banalissimo xml :))
partiamo con la classe:
using System;
using System.Xml;
using System.Xml.Serialization;
namespace Sito.WebModules.Configuration
{
public class LanguageSettings
{
public string LanguageName;
public string LanguageConnectionString;
}
public class ModuleSettings
{
private string connectionString;
private string galleryPath;
private LanguageSettings [] connectionString2;
public ModuleSettings()
{ }
[XmlElement]
public string ConnectionString
{
get
{
return connectionString;
}
set
{
connectionString = value;
}
}
[XmlElement]
public string GalleryPath
{
get
{
return galleryPath;
}
set
{
galleryPath = value;
}
}
[XmlArrayItem(ElementName= "LanguageSettings", IsNullable=true, Type = typeof(LanguageSettings) )]
[XmlArray]
public LanguageSettings [] ConnectionString2
{
get
{
return connectionString2;
}
set
{
connectionString2 = value;
}
}
}
}
per prima cosa creo una mia classe che espone semplicemente due propietà pubbliche
in una seconda classe "ModuleSettings" definisco una propietà Connectionstring2 (fantasia vero?) che restituisce un array di "LanguageSettings" indico al serializzatore il modo in cui trattare la propietà pubblica, in pratica la mia propetà Connectionstring2 verrà serializzata come un "albero" di item chiamati LanguageSettings contenente la una stringa di connessione per ogni linguaggio
alla fine il file config dovrebbe assomigliare a qualcosa del genere
<?xml version="1.0" ?>
<ModuleSettings xmlns:xsi="http://www.w3.org/2001/XMLShema-Istance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<ConnectionString>server=(local) ;database=barsottini;uid=sa;pwd=pop;</ConnectionString>
<GalleryPath>/immagini/</GalleryPath>
<XboxGalleryPath>Xbox/</XboxGalleryPath>
<ConnectionString2>
<LanguageSettings>
<LanguageName>italiano</LanguageName>
<LanguageConnectionString>server=(local) ;database=barsottini;uid=sa;pwd=pop;</LanguageConnectionString>
</LanguageSettings>
<LanguageSettings>
<LanguageName>inglese</LanguageName>
<LanguageConnectionString>server=(local) ;database=barsottini;uid=sa;pwd=pop;</LanguageConnectionString>
</LanguageSettings>
</ConnectionString2>
</ModuleSettings>
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