2011-09-04 64 views
0

我收到的服務響應是byte[100]我該如何將它轉換爲guid?如何將byte [100]轉換爲guid

byte[] response = wc.UploadValues(url, "POST", nvc); 
string Guid = new Guid(response).ToString(); 
Response.Write(Guid); 
+0

字節數組的編碼是什麼? – Ankur

+4

看來你已經有了一個解決方案。這不適合你嗎?那它做了什麼? – svick

+2

如果您希望根據結果值創建一個獨特的簽名,我建議您改爲計算一個哈希值,例如[MD5](http://en.wikipedia.org/wiki/MD5) –

回答

2

有一個Guid constructor它允許用戶從一個16元件的字節數組初始化一個GUID。所以你必須首先從你的100個元素數組中提取出16個元素,然後初始化Guid。從你的100個元素數組中提取的16個元素當然要取決於。

現在我懷疑在這裏發生的是服務器在響應中將Guid作爲字符串發送。因此,所有你需要做的就是利用parse it正確的編碼方式從服務器轉換成響應字符串後:

byte[] response = wc.UploadValues(url, "POST", nvc); 
var guid = Guid.Parse(Encoding.UTF8.GetString(response)); 
+2

或懶惰:'新的Guid(response.Take(16).ToArray())' –

+0

@ClausJørgensen,事實上我不認爲這確實是OP的問題。看到我更新的答案。當人們沒有正確解釋並在他們的問題中提供細節時,通常會發生這種情況:他們混淆了每個人,我們只能猜測。 –

+0

是的,我同意。我還發現這個問題相當混亂。 –