'的System.Guid'不是属性类

时间:2015-01-13 16:13:09

标签: c# visual-studio-2013 .net-4.0 .net-4.5 class-attributes

我正在使用基于.net 4.5的Visual Studio 2013创建一个新的dll应用程序。 尝试在我的类中定义Guid属性时:

[Guid("4245366B-0484-4A41-A2E8-C7D9FC3A4ED7")]

编译器给我错误

  

'System.Guid'不是属性类。

知道缺少什么吗?

2 个答案:

答案 0 :(得分:5)

您必须添加对System.Runtime.InteropServices的引用,如下所示:

using System.Runtime.InteropServices;

或说明该课程的全名:

[System.Runtime.InteropServices.Guid("4245366B-0484-4A41-A2E8-C7D9FC3A4ED7")]

或使用带有postfix Attribute的类名:

[GuidAttribute("4245366B-0484-4A41-A2E8-C7D9FC3A4ED7")]

或使用带有postfix Attribute的完整班级名称:

[System.Runtime.InteropServices.GuidAttribute("4245366B-0484-4A41-A2E8-C7D9FC3A4ED7")]

您可以在MSDN article

上找到更多信息

答案 1 :(得分:4)

您应该包含正确的命名空间或using语句。如果您不这样做,它将匹配System.Guid(而不是System.Runtime.InteropServices.GuidAttributeAttribute部分会因为方便而被删除),这实际上不是属性。这有点令人困惑,但确实......

此代码将为您提供:

[System.Runtime.InteropServices.Guid("4245366B-0484-4A41-A2E8-C7D9FC3A4ED7")]