2015-01-13 5 views
4

Я создаю новое приложение dll с Visual Studio 2013 на основе .net 4.5. При попытке определить атрибут Guid на моем классе, как это:'System.Guid' не является классом атрибутов

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

Компилятор дает мне ошибку

«System.Guid» не является классом атрибута.

Любая идея, что не хватает?

+0

проблема четко указано в сообщении об ошибке. '' System.Guid 'не является классом атрибутов. "' Вы ищете [GuidAttribute] (http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.guidattribute%28v=vs. 100% 29.aspx) –

ответ

4

Вы должны включить правильное пространство имен или using заявление. Если вы этого не сделаете, он будет соответствовать System.Guid (вместо System.Runtime.InteropServices.GuidAttribute, часть Attribute будет удалена для нашего удобства), что действительно не является атрибутом. Это немного сбивает с толку, но верно ...

Этот код поможет вам там:

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

Хорошая вещь, чтобы знать, очень полезно. – codea

5

Вы должны добавить ссылку на 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

+0

Большое спасибо за это. – codea