如何以及何时使用Guid?

时间:2015-12-08 05:17:26

标签: c# kinect

我正在使用C#进行kinect教程,并且有一个名为IBufferByteAccess的接口用于阅读编写IBuffer,代码如下所示:

    [Guid("905a0fef-bc53-11df-8c49-001e4fc686da"),
             InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
    interface IBufferByteAccess
    {
        unsafe void Buffer(out byte* pByte);
    }

我无法理解' Guid'的用法。如果我注释掉Guid,则会出错。我找到了一个解释,说它是一个全球识别。但我怎么知道我应该在需要时使用它?哪里可以找到价值?

1 个答案:

答案 0 :(得分:0)

根据MSDN,GuidAttribute

  

在不需要自动GUID时提供明确的System.Guid

有一个相关的Stackoverflow question有一个答案,可能对您有所帮助:

  

无论您是否使用该属性,.NET中的类型始终都有一个Guid。可通过Type.GUID属性获得。 CLR从类型定义中自动生成一个,确保相同的类型具有相同的Guids,无论它生成在哪台机器上。请注意,这与生成Guid的常规方式有很大不同。

     

如果要覆盖自动生成的guid,则只使用[Guid]属性。这仅适用于COM互操作方案,以获取与现有COM接口或coclass匹配的声明。