无法在C#.NET中将字符串转换为GUID

Mac*_*ver 36 c# string casting guid .net-3.5

为什么转换(到System.Guid类型)语句无效(try块中的第二行)?

例如,假设我有一个值为"5DD52908-34FF-44F8-99B9-0038AFEFDB81"的字符串.我想将其转换为GUID.这不可能吗?

    Guid ownerIdGuid = Guid.Empty;
    try
    {
        string ownerId = CallContextData.Current.Principal.Identity.UserId.ToString();
        ownerIdGuid = (Guid)ownerId;
    }
    catch
    {
        // Implement catch
    }
Run Code Online (Sandbox Code Playgroud)

Kil*_*aro 57

试试这个:

Guid ownerIdGuid = Guid.Empty;            
try
{
    string ownerId = CallContextData.Current.Principal.Identity.UserId.ToString();
    ownerIdGuid = new Guid(ownerId);
}
catch
{
    // implement catch 
}
Run Code Online (Sandbox Code Playgroud)


Bro*_*ass 24

试试这个:

ownerIdGuid = Guid.Parse(ownerId);
Run Code Online (Sandbox Code Playgroud)

ownerId是一个字符串,你不能Guid直接将其强制转换为.

  • @先生.MacGyver:`Guid.Parse()`是.NET 4,你应该可以在.NET 2.0中做`ownerIdGuid = new Guid(ownerId)` (3认同)
  • @先生.MacGyver:你在使用什么.NET版本? (2认同)

Chr*_*ich 7

你无法直接投射stringGuid.相反,使用:

  1. Guid.Parse(抛出FormatException无效格式); 要么
  2. Guid.TryParse (无效格式返回false)

  • 这仅适用于.NET 4.0,但答案为+1 (2认同)

juF*_*uFo 5

尝试以下方法之一:

Guid.Parse
Guid.TryParse
Gruid.TryParseExact
Run Code Online (Sandbox Code Playgroud)

在.NET 4.0(或3.5)中