Подтвердить что ты не робот

Невозможно преобразовать строку в GUID в С#.NET.

Почему оператор cast (to the 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
    }
4b9b3361

Ответ 1

Попробуйте следующее:

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

Ответ 2

Попробуйте следующее:

ownerIdGuid = Guid.Parse(ownerId);

ownerId - это строка, вы не можете напрямую передать ее в Guid.

Ответ 3

Вы не можете напрямую использовать от string до Guid. Вместо этого используйте либо:

  • Guid.Parse (бросает FormatException в недопустимый формат); или
  • Guid.TryParse (возвращает false в недопустимом формате)

Ответ 4

Попробуйте выполнить одно из следующих действий:

Guid.Parse
Guid.TryParse
Gruid.TryParseExact

в .NET 4.0 (или 3.5)

Ответ 5

Вам нужно использовать Guid.Parse для преобразования из строки в Guid

Ответ 6

System.Guid x = новый System.Guid( "5DD52908-34FF-44F8-99B9-0038AFEFDB81" ) работает и отвечает на вопрос, что задают

(Я знаю, что это старый пост)