自动生成的C#类型的GUID是否一致?例如,如果我获得了我的接口的GUID,IFoo(typeof(IFoo).GUID),第一次运行程序,我每次运行程序时都会获得相同的GUID吗?
我已经在我的机器上本地测试了它,它似乎总是一样的,但我不确定我是否可以依赖它在机器之间总是相同的.
优点:
缺点:
特别是; 对于某些设置上的数据库登录计算机输入的密码怎么办?
如果进程中的两个线程使用.NET API(Guid.NewGuid())同时生成新的GUID ,那么两个GUID可能是相同的吗?
谢谢.
更新 我希望变得实用.我知道人们普遍认为GUID在所有实际用途中都是独一无二的.我想知道我是否可以以相同的方式处理由同一进程的不同线程生成的GUIDS.
我需要生成一个GUID并通过字符串表示保存它.字符串表示应尽可能短,因为它将用作已经很长的URL字符串的一部分.
现在,我使用生成的原始字节而不是使用正常的abcd-efgh -...表示,而是使用base64编码,这会导致字符串更短.
但它有可能使它更短吗?
我可以失去一定程度的独特性和保持计数器,但扫描所有现有的密钥不是一种选择.建议?
我需要将在.NET中生成的Guid传递给Java应用程序.我用Guid.ToByteArray()它将它作为a存储在磁盘上byte[],然后将其读入Java并将其转换为UUID.为此,我复制了UUID的(私有)构造函数的实现,该构造函数采用byte[]:
private UUID(byte[] data) {
long msb = 0;
long lsb = 0;
assert data.length == 16;
for (int i=0; i<8; i++)
msb = (msb << 8) | (data[i] & 0xff);
for (int i=8; i<16; i++)
lsb = (lsb << 8) | (data[i] & 0xff);
this.mostSigBits = msb;
this.leastSigBits = lsb;
}
Run Code Online (Sandbox Code Playgroud)
但是,当我使用UUID检查时toString(),Java UUID与.NET Guid不同.
例如,.NET Guid
888794c2-65ce-4de1-aa15-75a11342bc63
Run Code Online (Sandbox Code Playgroud)
变成Java UUID
c2948788-ce65-e14d-aa15-75a11342bc63
Run Code Online (Sandbox Code Playgroud)
似乎前三组的字节顺序是相反的,而后两组中的顺序是相同的.
既然我希望toString()Guid和UUID都能产生相同的结果,有谁知道我应该如何正确地将.NET Guid读入Java UUID?
编辑:澄清一下,实施不是我自己的.它是类的私有构造函数,java.util.UUID它采用a byte[] …
如何在R中生成GUID和UUID?
我希望能够根据运行rsession的机器的硬件等生成GUID.
然而,作为后备,我很乐意创建符合rfc4122的UUID.
是否有可以创建GUID的包?否则,是否有人有一些RFC4122兼容的UUID代码?
如何在Visual Studio 2013中创建GUID?我有一个在VS2012中运行良好但在VS2013中无效的插件.我在VS2012中找到了这个创建GUID,这个如何转换VS2012将ins添加到VS2013包但无法使其工作(添加ins不是我的强项 - 我只是编辑SQL脚本).有没有一种简单的方法来恢复这个功能?
使用ServiceStack从Post返回一个简单的User对象.
用户对象非常简单:
public class User
{
public Guid Id { get; set; }
public string Username { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
帖子方法:
public override object OnPost(User user)
{
User newUser;
// Do stuff to user...
return newUser;
}
Run Code Online (Sandbox Code Playgroud)
我的问题是ServiceStack没有破折号格式化Guid,所以JSON响应看起来像这样:
{"id":"c884ce020ec94c65a8788c2ddc500434","username":"new user name"}
Run Code Online (Sandbox Code Playgroud)
客户端是Android/Java客户端,UUID.fromString()方法对此格式感到不满.
有没有办法强制ServiceStack返回用破折号格式化的Guid?
guid ×10
.net ×4
c# ×3
uuid ×2
hash ×1
java ×1
json ×1
linq-to-sql ×1
nhibernate ×1
r ×1
random ×1
security ×1
servicestack ×1
unique ×1