Guid.NewGuid(); .NET Core中的幕后

时间:2017-07-05 11:19:32

标签: c# .net-core uuid guid

昨天研究这个主题,我发现了几个有趣的问题(例如this one),关于如何最终生成GUID。简单来说;似乎Guid.NewGuid();调用了COM中的CoCreateGuid,而后者又调用了Windows RPC中的UuidCreate(文档herehere)。

我发现自己在想;如果操作系统 Windows,如果可能是.NET Core的情况,这是如何工作的,这是否会影响用于生成GUID的'version' algorithm(我理解为版本) 4在Windows上?)

1 个答案:

答案 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函数的实现。