То, как вы подходите к этому, не даст результатов по нескольким причинам:
- Регистрация атрибута в autofac ничего не изменит, поскольку вы не используете autofac для создания экземпляра атрибута.
- Атрибуты применяются перед выполнением кода и, таким образом, полагаются на постоянные входные данные.
Вам понадобится использовать шаблон расположения службы в вашем методе CreatePermission()
, чтобы найти SecurityService, как я предполагаю, вызов CreatePermission()
происходит после установки контейнера (а конструктор - нет!)
Имейте в виду, ServiceLocation будет препятствовать тестированию вашего класса, так как вам придется настраивать / настраиватьуказатель сервиса для каждого теста.
Пожалуйста, используйте с осторожностью
Вы должны начать свой путь в ServiceLocation здесь , но, честно говоря, это должно вызвать у вас вопросываш дизайн.Является ли атрибут лучше всего подходит для роли, которую вы задали?Возможно, вам стоит взглянуть на Aspect-Oriented Programming как PostSharp