2013-06-18 26 views
13

我有很多使用GUID的代碼(一個架構交給我 - 不是我的選擇)。在C#中指定一個GUID

大多數情況下,這些值來自數據庫並從那裏加載到內存中。但是,我正在進行一些測試,並且將一些GUID硬編碼到代碼中。

我還沒有找到一個簡單的方法來分配GUID,所以我最終使用Guid.Parse(「....」)。有沒有一種更簡單的方法來在C#中分配GUIDS?

value = Guid.Parse("11223344-5566-7788-99AA-BBCCDDEEFF00"); 

它只是看起來像很多開銷創建字符串,然後解析它。我想會有一種更簡單的方式來直接分配它。

+1

你所需要的Guid有具體的價值嗎?如果沒有,那麼...... var myGuid = Guid.NewGuid();'? – anaximander

+0

是的,不幸的是,我確實。它們都與數據庫值相關聯(PK和FK,儘管如此)。不是我會開始的,但我並沒有自己構建系統。上面的代碼只是一個愚蠢的例子,而不是直接來自我的代碼庫。 – Richard

回答

29

如果你已經有了Guid的字符串表示,你可以這樣做:

Guid g = new Guid("11223344-5566-7788-99AA-BBCCDDEEFF00"); 

如果你想要一個全新的Guid然後就去做

Guid g = Guid.NewGuid(); 
+0

是的,就是這樣。我懷疑它仍然在封面下面做一個.Parse(),但至少它的代碼更清晰。謝謝。 – Richard

+0

我相信你是對的,但正如你所說,這看起來更乾淨。另外,你有沒有看過Eric Lippert關於Guids的博客系列?這很有趣(我知道你被他們困住了,所以也許不適合你):http://blogs.msdn.com/b/ericlippert/archive/2012/04/24/guid-guide-part-one的.aspx –

1

如果您使用guid作爲一個常量 - 你可以把guid放到你的項目設置中。 enter image description here 比你能達到你值方式如下:

var myGuid = Properties.Settings.Default.MyGuid; 
0

如果你去不斷的選項,您可以使用此GUID方法(六一個可用):

private static const Guid PUBLIC_KEY = new Guid((int)0x93EE8E7F, 0x13FA, 0x4C6D, 
     new byte[] { 0x9D, 0x32, 0xE6, 0xEC, 0xD1, 0x4A, 0x91, 0xA7 }); 
// {93EE8E7F-13FA-4C6D-9D32-E6ECD14A91A7}