Я не согласен с тем, что атрибуты не должны иметь зависимостей в них. Часто атрибуты проверки будут иметь неизбежные зависимости. Атрибуты являются отличным примером СУХОГО при правильном использовании.
Подход @wllmsaccnt, по сути, является подходом KernelContainer, который был удален в 2.2 - но хуже. Теперь атрибут связан с приложением WCF.
IMO, именно поэтому я не согласен с удалением KernelContainer. Я определенно предпочел бы внедрение по сравнению с сервисным локатором, но я действительно не понимаю, почему сервисный локатор не рекомендуется, когда вы работаете в системах, которые вы не можете изменить или контролировать.
Это, безусловно, лучше, чем написание дополнительного пользовательского кода - для каждого приложения - который, скорее всего, менее удобен в обслуживании и менее тестируем, чем ServiceLocator.