昨天研究这个主题,我发现了几个有趣的问题(例如this one),关于如何最终生成GUID。简单来说;似乎Guid.NewGuid();
调用了COM中的CoCreateGuid
,而后者又调用了Windows RPC中的UuidCreate
(文档here和here)。
我发现自己在想;如果操作系统不 Windows,如果可能是.NET Core的情况,这是如何工作的,这是否会影响用于生成GUID的'version' algorithm(我理解为版本) 4在Windows上?)
答案 0 :(得分:10)
在非Windows机器上,.NET Core将在BSD上使用uuid_create
(在#34;版本1和#34;上)或在macOS上使用libuuid的uuid_generate_random
功能linux("版本4")。
可以在CoreCLR's source code on GitHub中找到替换CoCreateGuid
函数的实现。