web-dev-qa-db-ja.com

C#.NETで文字列をGUIDに変換できません

(System.Guid型への)キャストステートメントが無効になるのはなぜですか(tryブロックの2行目)?

たとえば、「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
    }
35
MacGyver

これを試して:

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

これを試して:

ownerIdGuid = Guid.Parse(ownerId);

ownerIdは文字列です。Guidに直接キャストすることはできません。

24
BrokenGlass

stringからGuidに直接キャストすることはできません。代わりに、次のいずれかを使用します。

  1. Guid.Parse (無効な形式でFormatExceptionをスロー);または
  2. Guid.TryParse (無効な形式ではfalseを返します)
7
Chris Schmich

次のいずれかを試してください。

Guid.Parse
Guid.TryParse
Gruid.TryParseExact

.NET 4.0(または3.5)

5
juFo

文字列からGuidに変換するにはGuid.Parseを使用する必要があります

2
JaredPar

System.Guid x = new System.Guid( "5DD52908-34FF-44F8-99B9-0038AFEFDB81")は動作し、求められていることに答えます

(私はこれが古い投稿であることを知っています)

0
JRrelyea