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

时间:2011-08-25 22:04:48

标签: c# string .net-3.5 casting guid

为什么转换(到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
    }

6 个答案:

答案 0 :(得分:55)

试试这个:

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

答案 1 :(得分:24)

试试这个:

ownerIdGuid = Guid.Parse(ownerId);

ownerId是一个字符串,您无法直接将其投放到Guid

答案 2 :(得分:7)

您无法直接从string投射到Guid。相反,使用:

  1. Guid.Parse(以无效格式抛出FormatException);或
  2. Guid.TryParse(无效格式时返回false)

答案 3 :(得分:5)

尝试以下方法之一:

Guid.Parse
Guid.TryParse
Gruid.TryParseExact

在.NET 4.0(或3.5)

答案 4 :(得分:2)

您需要使用Guid.Parse将字符串转换为Guid

答案 5 :(得分:0)

System.Guid x = new System.Guid(“5DD52908-34FF-44F8-99B9-0038AFEFDB81”)可以解决所问的问题

(我知道这是一个老帖子)