web-dev-qa-db-fra.com

Impossible de convertir une chaîne en GUID en C # .NET

Pourquoi l'instruction cast (vers un type System.Guid) n'est-elle pas valide (deuxième ligne du bloc try)?

Par exemple, supposons que j'ai une chaîne avec une valeur de "5DD52908-34FF-44F8-99B9-0038AFEFDB81". Je voudrais convertir cela en un GUID. N'est-ce pas possible?

    Guid ownerIdGuid = Guid.Empty;
    try
    {
        string ownerId = CallContextData.Current.Principal.Identity.UserId.ToString();
        ownerIdGuid = (Guid)ownerId;
    }
    catch
    {
        // Implement catch
    }
33
MacGyver

Essaye ça:

Guid ownerIdGuid = Guid.Empty;            
try
{
    string ownerId = CallContextData.Current.Principal.Identity.UserId.ToString();
    ownerIdGuid = new Guid(ownerId);
}
catch
{
    // implement catch 
}
55
Kiley Naro

Essaye ça:

ownerIdGuid = Guid.Parse(ownerId);

ownerId est une chaîne, vous ne pouvez pas la convertir directement en Guid.

24
BrokenGlass

Vous ne pouvez pas lancer directement de string à Guid. Au lieu de cela, utilisez soit:

  1. Guid.Parse (jette FormatException sur un format invalide); ou
  2. Guid.TryParse (retourne false si le format n'est pas valide)
7
Chris Schmich

Essayez l'une de celles-ci:

Guid.Parse
Guid.TryParse
Gruid.TryParseExact

dans .NET 4.0 (ou 3.5)

5
juFo

Vous devez utiliser Guid.Parse pour convertir une chaîne en Guid

2
JaredPar

System.Guid x = new System.Guid ("5DD52908-34FF-44F8-99B9-0038AFEFDB81") fonctionne et répond à ce qui est demandé.

(Je sais que c'est un ancien post)

0
JRrelyea