Можно ли проверить параметр .NET Attibute? - PullRequest
1 голос
/ 16 декабря 2008

Мне интересно, можно ли проверить параметры в (пользовательских) .net атрибутах. Например: если бы у меня был атрибут, который принимает положительное целое число, могу ли я вызвать ошибку времени компиляции, когда было указано отрицательное значение?

[DonkeyAttribute (1)] // OK

[DonkeyAttribute (-828)] // ошибка

В этом примере я мог бы использовать целое число без знака (но я не верю, что это не соответствует CLS?) Рекомендации?

Ответы [ 4 ]

1 голос
/ 16 декабря 2008

Вы можете применить это с помощью модульных тестов; решение, подобное предложенному мной для этого вопроса , может быть.

0 голосов
/ 16 декабря 2008

Вы можете создать пользовательский атрибут, унаследовав его от System.Attribute. В пользовательском конструкторе вы сможете проверить параметры.

0 голосов
/ 16 декабря 2008

Непосредственно? Нет, не переписывая csc или vbc. Большинство людей будет выполнять указанную проверку во время выполнения.

Тем не менее, немного Googling придумали эту запись в блоге на PostSharp Aspect Технически он не проверяется компилятором, но обеспечивает проверку во время компиляции. Вы можете проверить это здесь . Другие заметки о PostSharp от того же автора можно найти здесь .

0 голосов
/ 16 декабря 2008

Не думаю, что это нормально, однако эта статья описывает решение с использованием PostSharp . Не уверен, подходит ли он для твоих целей, но давай!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...