"正确"的方式(根据RFC 4122第4.3节)是创建一个基于名称的UUID.这样做(仅使用MD5哈希)的优点是保证不会与非基于命名的UUID发生冲突,并且与其他基于名称的UUID发生冲突的可能性非常小(非常小).
.NET Framework中没有用于创建这些的本机支持,但通过使用与此类似的代码,您可以创建GUID,如下所示:
Guid guid = GuidUtility.Create(GuidUtility.UrlNamespace, filePath);
Run Code Online (Sandbox Code Playgroud)
为了进一步降低与其他GUID冲突的风险,您可以创建一个私有GUID以用作命名空间ID(而不是使用RFC中定义的URL命名空间ID).