A nyelvi beállításokkal kapcsolatos információkat a CultureInfo osztály property-jeinek kiolvasásával határozhatjuk meg. Az aktuális beállításokhoz úgy juthatunk el, hogy a Thread osztály CurrentThread property-jét használjuk. Ezzel eljutottunk egy olyan objektumhoz, mely az aktuális programunk aktuális szálát tartalmazza. Ennek van egy CurrentCulture property-je, mely egy CultureInfo osztályt ad vissza.
Ahelyett, hogy most egyesével olvasnánk ki ennek property-jeit, inkább készítünk egy olyan ciklust, mely végigmegy CultureInfo osztály property-jein, mint egy tömbön és kiolvassa azok adatait.
Ehhez szükségünk lesz egy Type osztályra, melybe lekérjük a CultureInfo objektumunk típusazonosítóját a GetType függvénnyel.
private void button1_Click(object sender, System.EventArgs e)
{
Type t = Thread.CurrentThread.CurrentCulture.GetType();
Ha ez adott, akkor könnyen szerezhetünk egy tömböt, melynek minden eleme egy PropertyInfo típusú osztály lesz és amely egy-egy property-t fog képviselni az adott objektumból. Ehhez az imént lekért típusból a GetProperties függvény hívásával juthatunk el.
PropertyInfo[] p = t.GetProperties();
Most már csak az adatok megjelenítése marad, melyhez egy foreach ciklust készítünk, amely a PropertyInfo tömbön halad végig.
foreach(PropertyInfo i in p)
{
A PropertyInfo osztály Name property-je adja a property nevét, valamint a GetValue függvénnyel lekérdezhetjük annak értékét is.
listBox1.Items.Add(i.Name + ": " + i.GetValue(Thread.CurrentThread.CurrentCulture, null).ToString());
}
}