小编The*_*cer的帖子

如何将.NET Guid读入Java UUID

我需要将在.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[] …

.net c# java uuid guid

20
推荐指数
5
解决办法
1万
查看次数

在Linux上编译C#+ WPF以便在Windows上运行

我有一个C#应用程序,其中一些部分是使用WPF编写的(Mono不支持).是否可以在Linux上编译此应用程序?最终,应用程序将在Windows上运行,但它是更大框架的一部分,我们的整个构建过程在Linux上运行,所以我希望能够在Linux上编译C#应用程序.

c# linux wpf compilation

5
推荐指数
1
解决办法
1661
查看次数

标签 统计

c# ×2

.net ×1

compilation ×1

guid ×1

java ×1

linux ×1

uuid ×1

wpf ×1