2011-09-20 9 views
6

Stavo creando il mio BLL con .Net Framework 4.0 ma poi ho notato che ne avevo bisogno per un'app WebServices, quindi ho cambiato la versione .Net a 3.5. Ora ho questa riga di codice dandomi un errore:Come utilizzare System.Guid.Parse nel framework 3.5

tmp.GlobalIdentifier = Guid.Parse(Convert.ToString(row["GlobalIdentifier"]));

L'errore è

'System.Guid' does not contain a definition for 'Parse'

che è un errore molto chiara. Avete qualche metodo "Parse" equivalente in qualsiasi altra classe? Quale sarebbe il modo migliore di analizzare SQL Server UniqueIdentifier in un oggetto System.Guid utilizzando .Net framework 3.5?

risposta

17

provare tmp.GlobalIdentifier = new Guid(Convert.ToString(row["GlobalIdentifier"]))

Linking MSDN documentation.

+0

Grazie, ha funzionato come un fascino. Ho visto un sacco di soluzioni Regex per questo problema, ma volevo qualcosa di più simile a questo (lascia che .net faccia il lavoro per me). Grazie gentilmente! –

1

Qual è il tipo .NET si utilizza per memorizzare il Server UniqueIdentifier SQL?

Se è la struct SqlGuid, si può semplicemente utilizzare il previsto explicit conversion operator:

tmp.GlobalIdentifier = (Guid)(SqlGuid)row["GlobalIdentifier"]; 

Se si utilizza una stringa che Guid può accettare, allora si può solo utilizzare l'overload costruttore Guid che accetta una stringa , come altri hanno menzionato.

+0

Grazie gentile Ani. In effetti io stesso non memorizzo i dati su questo tavolo, ma lo recuperiamo in modo da ignorare il modo in cui viene eseguito. Lo farò, comunque, lo userò di sicuro se l'opportunità arriverà. Grazie per l'aiuto. –

4
Guid myGuid = new Guid("B80D56EC-5899-459d-83B4-1AE0BB8418E4");