Запрещение пользовательских атрибутов вместе - PullRequest
4 голосов
/ 19 мая 2011

Существует ли механизм времени разработки, чтобы проверить, применяются ли два атрибута к одному и тому же объекту?

Я создал два атрибута, скажем, [MyXAttribute] и [MyYAttribute], но я хотел бы проверить во время разработки, чтобы убедиться, что в поле используется только один.

Это похоже на использование AllowMultiple = false, за исключением того, что применяется к использованию двух экземпляров одного и того же атрибута.

Я пытался наследовать от того же базового атрибута, [MyAttribute], с AllowMultiple = false на этой базе, но проверки нет.

Спасибо.

1 Ответ

4 голосов
/ 19 мая 2011

Если два атрибута являются взаимоисключающими, то вы можете рассмотреть возможность их объединения, а затем дифференцировать их использование с помощью параметра enum или bool. Таким образом AllowMultiple = false сделает всю работу за вас.

Что-то вроде:

[MyAttributeXorY(MyAttributeEnum.X)]
...