Ottenere la versione di un Assembly con WinRT
Con le applicazioni Windows, compreso Silverlight, che quindi comprende a sua volta anche il mondo Windows Phone, potevamo scrivere il codice seguente:
string version = System.Reflection.Assembly.GetExecutingAssembly().FullName.Split(',')[1]; string[] fullversion = version.Split('=')[1].Split('.'); return fullversion[0] + "." + fullversion[1];
Questo mi permette di estrarre dal FullName di un Assembly il numero di versione dell’assembly stesso, molto comodo per essere visualizzato su una Page di Silverlight.
Il codice da scrivere con WinRT, e quindi con Windows 8, è leggermente diverso.
string version = typeof(<qualsiasi_classe_usata_nel_codice>).GetTypeInfo().Assembly.FullName.Split(',')[1];
La differenza è tutta nella prima riga di codice. In pratica si tratta di avere un’istanza di Type relativa ad una qualsiasi classe del proprio codice, chiamare il metodo GetTypeInfo(), per arrivare all’Assembly, etc. etc. Notare che GetTypeInfo() è un’extension method, per cui bisogna includere il namespace System.Reflection.
Tutto qua, il resto del codice è analogo al precedente. Con qualche split si ottiene il numero di versione dell’assembly.