你打电话时ToByteArray()
在 .NET 中的 GUID 上,与 GUID 的字符串表示形式相比,结果数组中的字节顺序不是您所期望的。例如,对于以下表示为字符串的 GUID:
11223344-5566-7788-9900-aabbccddeeff
的结果ToByteArray()
这是:
44, 33, 22, 11, 66, 55, 88, 77, 99, 00, AA, BB, CC, DD, EE, FF
请注意,前四个字节的顺序是相反的。此外,字节 4 和 5 也被交换,字节 6 和 7 也被交换。但最后 8 个字节的顺序与字符串中表示的顺序相同。
我知道这种情况正在发生。我想知道为什么 .NET 以这种方式处理它。
作为参考,您可以看到一些对此的讨论和困惑(错误归因于 Oracle 数据库)here https://stackoverflow.com/questions/2667740/convert-byte-array-from-oracle-raw-to-system-guid and here https://stackoverflow.com/questions/7289734/convert-from-oracles-raw16-to-nets-guid.