Ответ 1
Попробуйте следующее:
Guid ownerIdGuid = Guid.Empty;
try
{
string ownerId = CallContextData.Current.Principal.Identity.UserId.ToString();
ownerIdGuid = new Guid(ownerId);
}
catch
{
// implement catch
}
Почему оператор 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
}
Попробуйте следующее:
Guid ownerIdGuid = Guid.Empty;
try
{
string ownerId = CallContextData.Current.Principal.Identity.UserId.ToString();
ownerIdGuid = new Guid(ownerId);
}
catch
{
// implement catch
}
Попробуйте следующее:
ownerIdGuid = Guid.Parse(ownerId);
ownerId
- это строка, вы не можете напрямую передать ее в Guid
.
Вы не можете напрямую использовать от string
до Guid
. Вместо этого используйте либо:
Guid.Parse
(бросает FormatException
в недопустимый формат); илиGuid.TryParse
(возвращает false в недопустимом формате)Попробуйте выполнить одно из следующих действий:
Guid.Parse
Guid.TryParse
Gruid.TryParseExact
в .NET 4.0 (или 3.5)
Вам нужно использовать Guid.Parse для преобразования из строки в Guid
System.Guid x = новый System.Guid( "5DD52908-34FF-44F8-99B9-0038AFEFDB81" ) работает и отвечает на вопрос, что задают
(Я знаю, что это старый пост)