标签: guid

如何以编程方式获取.net2.0中的应用程序的GUID

我需要在C#.NET2.0中访问我的项目的程序集.

我可以在项目属性下的"程序集信息"对话框中看到GUID,目前我刚刚将它复制到代码中的const.GUID永远不会改变,所以这不是解决方案的坏处,但直接访问它会很好.有没有办法做到这一点?

.net c# guid visual-studio-2005 .net-2.0

41
推荐指数
6
解决办法
6万
查看次数

什么是好的唯一PC标识符?

我一直在查看本教程中的代码,我发现它用于My.Computer.Name保存不应在计算机之间漫游的设置.但是,完全有可能用户拥有两台名称相同的PC.例如,如果他们想在每台PC上拥有相同的用户名,他们最终可能会得到两台名为Username-PC的PC.

识别不同PC有哪些好方法?PC是否有与之关联的GUID,或者我是否应该考虑从某些硬件中提取序列号?我不关心通过重新安装Windows是否仍然存在.

(我链接的教程是在VB.Net中,但我在C#中实现它)

.net c# guid

41
推荐指数
5
解决办法
7万
查看次数

什么是Guid.NewGuid()的C++版本?

我需要GUID在一个非托管的Windows C++项目中创建一个.我已经习惯了C#,我会用它Guid.NewGuid().什么是(非托管窗口)C++版本?

c++ windows winapi guid

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

将任意GUID编码为可读ASCII(33-127)的最有效方法是什么?

GUID的标准字符串表示形式大约需要36个字符.哪个非常好,但也非常浪费.我想知道如何使用33-127范围内的所有ASCII字符以最短的方式对其进行编码.天真的实现产生22个字符,因为128位/6位产生22个字符.

霍夫曼编码是我的第二好,唯一的问题是如何选择代码....

当然,编码必须是无损的.

algorithm guid

40
推荐指数
4
解决办法
2万
查看次数

如何在Excel中创建GUID?

我需要一个函数来向Excel中的单元格添加GUID.我在stackoverflow上找到了上一个问题,但它无效.它建议以下功能:

=CONCATENATE(DEC2HEX(RANDBETWEEN(0,4294967295),8),"-",DEC2HEX(RANDBETWEEN(0,6553??5),4),"-
 ",DEC2HEX(RANDBETWEEN(16384,20479),4),"-",DEC2HEX(RANDBETWEEN(32768,49151??),4),"-
 ",DEC2HEX(RANDBETWEEN(0,65535),4),DEC2HEX(RANDBETWEEN(0,4294967295),8))
Run Code Online (Sandbox Code Playgroud)

我一直无法使concatenate方法工作,所以尝试使用"&"图来连接.这似乎有效,但后来我在第二个DEX2HEX块上出现了一个莫名其妙的错误:DEC2HEX(RANDBETWEEN(0,6553 5),4).Excel公式评估员说这是无效的,但我似乎无法弄清楚为什么.有任何想法吗?

excel guid

39
推荐指数
5
解决办法
8万
查看次数

强类型Guid作为通用结构

我已经在代码中制作了两次相同的bug,如下所示:

void Foo(Guid appId, Guid accountId, Guid paymentId, Guid whateverId)
{
...
}

Guid appId = ....;
Guid accountId = ...;
Guid paymentId = ...;
Guid whateverId =....;

//BUG - parameters are swapped - but compiler compiles it
Foo(appId, paymentId, accountId, whateverId);
Run Code Online (Sandbox Code Playgroud)

好的,我想防止这些错误,所以我创建了强类型的GUID:

[ImmutableObject(true)]
public struct AppId
{
    private readonly Guid _value;

    public AppId(string value)
    {            
        var val = Guid.Parse(value);
        CheckValue(val);
        _value = val;
    }      

    public AppId(Guid value)
    {
        CheckValue(value);
        _value = value;           
    }

    private static void CheckValue(Guid value)
    { …
Run Code Online (Sandbox Code Playgroud)

c# generics struct guid

39
推荐指数
2
解决办法
1045
查看次数

我如何获得/使用LibUUID?

我正在尝试替换一个调用,::CoCreateGUID因此我可以在Linux上的C++程序中生成GUID.

我知道libuuid支持这个,我已经读过这个问题了.

我对Ubuntu/GCC/Linux有点新意,所以我开始这样:

#include <uuid/uuid.h>
Run Code Online (Sandbox Code Playgroud)

而现在我被卡住了!:) G ++找不到uuid.h,我不知道如何获取/找到它.

linux uuid gcc guid

38
推荐指数
2
解决办法
8万
查看次数

使用ComVisible(false)时指定Guid有什么意义吗?

在Visual Studio中创建新的C#项目时,生成的AssemblyInfo.cs文件包含指定程序集GUID的属性.属性上方的注释表明它"如果此项目暴露给COM".

我的程序集都没有包含需要对COM可见的类型,因此我已经标记了我的程序集[assembly: ComVisible(false)].那么指定GUID有什么意义吗?

我的感觉是答案是"不" - 那么为什么默认的AssemblyInfo.cs文件包含[assembly: ComVisible(false)][assembly: Guid("...")]


编辑:

总结一下回答:

在它们之间,答案解释了当且仅当正在使用COM互操作时才需要指定GUID.所以,在我的情况下,没有必要使用GUID.

sharptooth进一步解释说,[assembly: ComVisible(false)]并不意味着不使用COM互操作,因为可以覆盖ComVisible各个类型.因此,默认的AssembyInfo.cs包含两者[assembly: ComVisible(false)]和GUID.

.net c# com guid comvisible

38
推荐指数
2
解决办法
2万
查看次数

打印GUID变量

我有一个GUID变量,我想在文本文件中写入其值.GUID定义是:

typedef struct _GUID {          // size is 16
    DWORD Data1;
    WORD   Data2;
    WORD   Data3;
    BYTE  Data4[8];
} GUID;
Run Code Online (Sandbox Code Playgroud)

但我想写下它的价值:

CA04046D-0000-0000-0000-504944564944
Run Code Online (Sandbox Code Playgroud)

我观察到:

  • Data1 保存CA04046D的十进制值
  • Data2 保持0的十进制值
  • Data3 保存下一个0的十进制值

但其他人呢?

我必须解释自己这个值才能得到那个输出,或者有更直接的方法来打印这样的变量?

c++ guid

37
推荐指数
7
解决办法
5万
查看次数

从Oracle的RAW(16)转换为.NET的GUID

我在手动调试.NET应用程序时遇到困难,其中Guid值从.NET到Oracle不同.

  • C#读取的位置:
    • 17D89D326C2142D69B989F5201288DBF
  • Oracle读到:
    • 329DD817216CD6429B989F5201288DBF

我怎么能够手动调试,即从C#的GUID能够将该值粘贴到oracle查询中并获得正确的结果(反之亦然)?

c# oracle nhibernate guid s#arp-architecture

37
推荐指数
3
解决办法
3万
查看次数