Я хочу построить словарь в атрибуте.
Я знаю об использовании AllowMultiple
в C# атрибутах, но это вызывает вызов атрибута и (в моем случае, потому что это фильтр) срабатывает дважды.
По сути, я хочу, чтобы это поведение:
[MyAttribute("someKey", "value1", "value2", "value3")]
[MyAttribute("someOtherKey", "value1", "value2", "value3")]
В результате Dictionary<string, HashSet<string>>
внутри MyAttribute
. Однако по понятным причинам это не работает, так как каждая строка создает совершенно новый MyAttribute
.
Есть ли какой-нибудь хороший способ обойти это? Атрибуты поддерживают это вообще, или мне нужно придумать какой-нибудь дерзкий способ передать аргументы в одно объявление атрибута?
Редактировать: я должен отметить ... Это для фильтра авторизации. Он должен работать для авторизации нескольких сред (ключей) для нескольких потенциальных значений. Однако я не могу использовать несколько экземпляров атрибута, потому что тогда фильтр будет срабатывать несколько раз.