Tag: guid

比较创建不同的GUID时是否有更大的机会发生冲突?

如果我使用构造函数创建GUID (例如, Guid myGuid = new Guid(“myguid”) ),它与使用Guid.NewGuid()创建的GUID与使用Guid.NewGuid()创建的两个GUID相冲突的可能性更大Guid.NewGuid() ? 编辑: 更具体的问题: 在比较基于哈希的GUID与“Guid.NewGuid()”时,是否有更大的机会发生冲突?

GUID的格式是否始终相同?

GUID你得到的东西像aaaef973-d8ce-4c92-95b4-3635bb2d42d5 总是一样的吗? 是否总是具有以下格式 8个字符“ – ”,4个字符“ – ”,4个字符“ – ”,4个字符“ – ”,12个字符 我问,因为我需要将没有“ – ”的GUID转换为带有“ – ”和副签证的GUID。

“null this”是否可以使用扩展方法?

所以,我真的很喜欢使用扩展方法..也许有点太多了。 所以,我会问我最近的享受,以确保我不会走得太远。 情景是我们有一个Guid? 传入的变量。如果变量为null或Guid.Empty ,那么我们想要使用不同的Guid。 所以,我写了一个扩展方法,让它像英文一样读: internal static Guid OrIfEmpty(this Guid? guid, Guid other) { if (!guid.HasValue || guid.Value == Guid.Empty) { return other; } return guid.Value; } 这自动意味着“null this”不会抛出exception。 例如,这将工作: ((Guid?)null).OrIfEmpty(other); 如果不使用扩展方法,这是不可能的,在我看来可能会产生误导。 然而,它只是如此简洁和干净! 所以你怎么看? 这是可以接受的事情,还是对其他程序员来说太混乱了? 此外,我确信会有其他情况我会做这样的事情并将其检查为null,但这是我现在最好的例子。 注意:我真的不是在问这个Guid? 特别是生意。 我要求更多关于实现的整体模式(有一个扩展方法,其中可以为null )

是否及时订购了GUID? 如果ORDER BY与GUID变量类型一起使用,最近创建的记录会迟到吗?

是否及时订购了GUID? 我的意思是如果你使用带有GUID变量类型的ORDER BY,最近创建的记录会迟到吗?

在C#和SQL Server中不同地将int转换为guid

在C#和SQL Server中将int转换为guid时,我得到不同的值。 在C#中我使用这种方法 public static Guid Int2Guid( int value ) { byte[] bytes = new byte[16]; BitConverter.GetBytes( value ).CopyTo( bytes, 0 ); return new Guid( bytes ); } Console.Write( Int2Guid( 1000 ).ToString() ); // writes 000003e8-0000-0000-0000-000000000000 在SQL Server中我使用 select cast(cast(1000 as varbinary(16)) as uniqueidentifier) — writes E8030000-0000-0000-0000-000000000000 他们为什么表现不同?

如何使用CodeReviewRequest提供的信息查找Shelveset

如果我有Shelveset的名称和所有者,我可以使用以下代码成功找到它: foreach (Shelveset shelveset in versionControlServer.QueryShelvesets(workItem. Fields[“Associated Context”].Value.ToString(), “NW\\LFreeman”)) 其中workItem是CodeReviewRequest workItem一个实例。 我可以从workItem.Fields[“Associated Context”]获取CodeReviewRequest的名称 如果我将所有者设置为null ,则返回一个空列表。 据我所知,只有在将所有者指定为字符串时,此方法才有效。 我想知道如何获得所有者。 使用workItem.Fields[“Associated Context Owner”].Value.ToString() ,我能够获得所有者的GUID。 现在的挑战是如何将GUID转换为预期的所有者,即“NW \ LFreeman”。 当我打印出workItems.Fields[“Associated Context Owner”].Value.ToString() ,这就是我所看到的: c3741a78-1a44-4bf6-95b0-f360cd387f3e 是否可以从此GUID中检索“NW \ LFreeman”? 如果是这样,什么方法调用将使我能够进行这种映射? 编辑: 以下是根据给出的答案和链接为我工作的代码: Guid ownerId = new Guid(codeReviewRequestWorkItem.Fields[“Associated Context Owner”].Value.ToString()); Guid[] teamFoundationIds = new Guid[1]; teamFoundationIds[0] = ownerId; TeamFoundationIdentity[] users = ims.ReadIdentities((Guid[])teamFoundationIds, MembershipQuery.None); […]

C#从Guid创建一个Auth Token并结合40Char Hex string(UUID)

我正在编写一个驱动iPhone应用程序的asp.net MVC应用程序。 我希望Iphone发送给我的UUID看起来像这样: 2b6f0cc904d137be2e1730235f5664094b831186 在服务器上我想生成一个Guid: 466853EB-157D-4795-B4D4-32658D85A0E0 在Iphone和服务器上,我需要一个简单的方法来将这两个值组合成一个可以传递的Auth令牌。 IPhone和ASP.NET MVC应用程序都需要能够根据UUID和GUID反复计算值。 所以这需要是一个简单的算法,没有来自.net框架的库。 完全解决方案 public void Test() { var DeviceId = Guid.NewGuid(); var newId = “2b6f0cc904d137be2e1730235f5664094b831186”; var guidBytes = DeviceId.ToByteArray(); var iphoneBytes = StringToByteArray(newId); byte[] xor = new byte[guidBytes.Length]; for (int i=0;i<guidBytes.Length;i++) { xor[i] = (byte) (guidBytes[i] ^ iphoneBytes[i]); } var result = ByteArrayToString(xor); } public static byte[] […]

c#System.guid不包含Parse的定义

AT.Anchor = System.Guid.Parse(DataBinder.Eval(e.Item.DataItem, “Anchor”).ToString()); 抛出: ‘System.Guid’ does not contain a definition for ‘Parse’ 当我尝试构建它时。 但它运行正常,任何想法我怎么能更好地处理这个? 编辑 这是我的web.config的一部分

关于GUID的问题:它们总是固定长度,中间数字总是4吗?

我刚刚生成了几百万个GUID,把它们变成了一个字符串并得到了长度……它总是一样的。 转换为String时,我可以依赖GUID的这个固定长度吗? 此外,GUID的中间数字是否总是“4”,如此截图所示?

对于同一.NET库的不同目标框架版本,程序集guid属性是否有所不同?

我正在用C#开发一个.NET库,它必须解决一系列广泛的目标框架。 我想生成一个nuget包,可以根据目标项目的设置正确安装。 为了实现这一点,我使用多个.csproj文件。 他们每个人都在寻址一个特定的目标框架(例如MyLibrary.net45.csproj会在bin/*/net45创建二进制文件,MyLibrary.netstandard1.2.csproj会在bin/*/netstandard1.2创建输出,所以上)。 然后我用上面项目的输出创建一个nuget包。 在此阶段,不同的.csproj文件重用相同的AssemblyInfo.cs文件,从而在那里使用共享设置。 我一直想知道所有不同的目标框架对[assembly: Guid(“…”)]属性使用相同的值是否正确,或者每个目标框架二进制文件是否应该使用自己的独特框架构建?