Создание специального предупреждения во время компиляцииC#

Место общения программистов C#
Anonymous
Создание специального предупреждения во время компиляции

Сообщение Anonymous »

Я использую VS2008 и хотел бы создать предупреждение/ошибку во время компиляции на основе пользовательских атрибутов свойства (если это возможно).
Есть два случая, которые интересуют я сейчас:

Код: Выделить всё

[MyAttribute (typeof(MyClass)]
Где MyClass должен реализовать интерфейс. В настоящее время я утверждаю это в конструкторе атрибута, однако это не позволяет легко отследить из-за характера трассировки стека:

Код: Выделить всё

public MyAttribute (Type MyClassType)
{
System.Diagnostics.Debug.Assert(
typeof(MyInterface).IsAssignableFrom(MyClassType),
"Editor must implement interface: " + typeof(MyInterface).Name);
}
Второй случай, который меня интересует, — это когда у меня есть тип, определенный в атрибуте, и если этот тип реализует интерфейс, то должно отображаться предупреждение, если другой атрибут отсутствует.< /p>
И.Е. if (MyClass.Implements(SomeInterface) && !Exists(SomeAttibute)) { Создать предупреждение

Код: Выделить всё

[MyAttribute(typeof(MyClass)]
// Comment next line to generate warning
[Foo ("Bar")]
Спасибо!


Подробнее здесь: https://stackoverflow.com/questions/142 ... me-warning

Вернуться в «C#»