Запрещение одновременного использования настраиваемых атрибутов

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

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

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

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

Спасибо.


person Mark A Johnson    schedule 19.05.2011    source источник


Ответы (1)


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

Что-то типа:

[MyAttributeXorY(MyAttributeEnum.X)]
person dlev    schedule 19.05.2011
comment
Я подумал об этом и сделаю это, если не найду более элегантного способа. Спасибо за идею. - person Mark A Johnson; 19.05.2011