#c# #resharper #ninject #static-analysis
#c# #resharper #ninject #статический анализ
Вопрос:
Мы используем инжектор зависимостей Ninject в нашем проекте C #. Обычный способ его реализации выглядит следующим образом:
[Inject]
public UsersRepositoryInterface UsersRepository { private get; set; }
В дополнение к этому, я включил Resharper Wide Analysis для решения, и оно показывает мне предупреждения в этой строке:
- Свойство ‘VrtSystemsFlatRepository’ можно сделать закрытым
- Средство автоматического доступа к свойствам никогда не используется
Мой внутренний перфекционист страдает, когда видит это, и я не знаю, как избежать этого предупреждения.
Я знаю о двух способах, но мне не нравятся оба из них.
- Добавьте
UsedImplicitly
атрибут в дополнение кInject
. Предупреждение будет подавлено, но мне нужно добавить этот атрибут во многие места. - Подавите предупреждение глобально для решения, для проекта или файла.
Ответ №1:
Необходимо добавить аннотацию «MeansImplicitUse» для «Ninject.»Ввести атрибут» во внешний пакет аннотаций JetBrains:https://github.com/JetBrains/ExternalAnnotations/issues/161
Комментарии:
1. Вы имеете в виду, что эта функция будет добавлена в новую версию пакета Annotations?
Ответ №2:
Вы можете настроить Ninject для поиска пользовательского атрибута, отличного от [Inject]
, передав ядру NinjectSettings
с другим InjectAttribute
значением. Вы должны иметь возможность наследовать этот пользовательский атрибут от UsedImplicitly
, чтобы подавить предупреждение Resharper.
Комментарии:
1. Я вижу здесь две проблемы: 1) Мне нужно обновить тонны кода 2) Если к нашей команде присоединится новый человек, ему / ей будет трудно понять, что это за «другой» атрибут InjectAttribute.