【问题标题】:'System.Guid' is not an attribute class'System.Guid' 不是属性类
【发布时间】:2015-03-11 16:00:50
【问题描述】:

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

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

编译器给了我错误

'System.Guid' 不是属性类。

知道缺少什么吗?

【问题讨论】:

  • 错误信息中明确说明了问题。 "System.Guid' is not an attribute class."你在找GuidAttribute

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


【解决方案1】:

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

using System.Runtime.InteropServices;

或说出班级的全名:

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

或使用带有后缀Attribute的类名:

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

或使用带有后缀Attribute的完整类名:

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

您可以在MSDN article找到更多信息

【讨论】:

  • 非常感谢分享这个。
【解决方案2】:

您应该包含正确的命名空间或using 语句。如果您不这样做,它将匹配System.Guid(而不是System.Runtime.InteropServices.GuidAttribute,为方便起见,删除了Attribute 部分),这确实不是一个属性。这有点令人困惑,但确实如此......

此代码将带您到达那里:

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

【讨论】:

    猜你喜欢
    • 2016-04-16
    • 1970-01-01
    • 2020-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-10
    • 2018-08-04
    相关资源
    最近更新 更多