2011-09-04 145 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

是的,我同意。我还发现这个问题相当混乱。 –