我正在使用基于.net 4.5的Visual Studio 2013创建一个新的dll应用程序。
尝试在我的类中定义Guid
属性时:
[Guid("4245366B-0484-4A41-A2E8-C7D9FC3A4ED7")]
编译器给我错误
'System.Guid'不是属性类。
知道缺少什么吗?
答案 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.GuidAttribute
,Attribute
部分会因为方便而被删除),这实际上不是属性。这有点令人困惑,但确实......
此代码将为您提供:
[System.Runtime.InteropServices.Guid("4245366B-0484-4A41-A2E8-C7D9FC3A4ED7")]