2013-06-18 3 views
13

Ho un sacco di codice che utilizza GUID (un'architettura che mi è stata consegnata, non una mia scelta).Assegnazione di un GUID in C#

Principalmente, i valori provengono da un database e vengono caricati in memoria da lì. Tuttavia, sto facendo alcuni test e sto codificando alcuni GUID nel codice.

Non ho trovato un modo semplice per assegnare GUID, quindi ho finito per utilizzare Guid.Parse ("...."). C'è un modo più semplice per assegnare GUID in C#?

value = Guid.Parse("11223344-5566-7788-99AA-BBCCDDEEFF00"); 

Sembra solo un sovraccarico per creare la stringa e quindi analizzarla. Penserei che ci sarebbe un modo più semplice per assegnarlo direttamente.

+1

Avete bisogno la 'Guid' s per avere valori specifici? Altrimenti, allora ... 'var myGuid = Guid.NewGuid();'? – anaximander

+0

Sì, sfortunatamente, lo so. Sono tutti legati ai valori del database (PK e FK, comunque). Non è quello che avrei iniziato, ma non ho costruito il sistema da solo. Il codice sopra è solo un esempio sciocco, non direttamente dalla mia base di codice. – Richard

risposta

29

Se si dispone già di una rappresentazione di stringa del Guid, si può fare questo:

Guid g = new Guid("11223344-5566-7788-99AA-BBCCDDEEFF00"); 

E se si desidera un nuovo Guid poi basta fare

Guid g = Guid.NewGuid(); 
+0

Sì, è così. Sospetto che stia ancora facendo .Parse() sotto le copertine, ma almeno è più pulito nel codice. Grazie. – Richard

+0

Sono sicuro che hai ragione, ma come dici tu, sembra più pulito. Inoltre, hai visto la serie di blog di Eric Lippert su Guids? È piuttosto interessante (so che sei bloccato con loro, quindi forse non pertinente): http://blogs.msdn.com/b/ericlippert/archive/2012/04/24/guid-guide-part-one aspx –

1

Nel caso in cui si utilizza il guid come costante - puoi inserire il guid nelle impostazioni del tuo progetto. enter image description here di quanto si possa raggiungerti valori seguente modo:

var myGuid = Properties.Settings.Default.MyGuid; 
0

se si va per l'opzione costante è possibile utilizzare questo metodo Guid (uno dei sei disponibili):

private static const Guid PUBLIC_KEY = new Guid((int)0x93EE8E7F, 0x13FA, 0x4C6D, 
     new byte[] { 0x9D, 0x32, 0xE6, 0xEC, 0xD1, 0x4A, 0x91, 0xA7 }); 
// {93EE8E7F-13FA-4C6D-9D32-E6ECD14A91A7}