Как подавить предупреждение Resharper о широком анализе свойств с помощью атрибута Inject?

#c# #resharper #ninject #static-analysis

#c# #resharper #ninject #статический анализ

Вопрос:

Мы используем инжектор зависимостей Ninject в нашем проекте C #. Обычный способ его реализации выглядит следующим образом:

 [Inject]
public UsersRepositoryInterface UsersRepository { private get; set; }
  

В дополнение к этому, я включил Resharper Wide Analysis для решения, и оно показывает мне предупреждения в этой строке:

  • Свойство ‘VrtSystemsFlatRepository’ можно сделать закрытым
  • Средство автоматического доступа к свойствам никогда не используется

введите описание изображения здесь

Мой внутренний перфекционист страдает, когда видит это, и я не знаю, как избежать этого предупреждения.

Я знаю о двух способах, но мне не нравятся оба из них.

  1. Добавьте UsedImplicitly атрибут в дополнение к Inject . Предупреждение будет подавлено, но мне нужно добавить этот атрибут во многие места.
  2. Подавите предупреждение глобально для решения, для проекта или файла.

Ответ №1:

Необходимо добавить аннотацию «MeansImplicitUse» для «Ninject.»Ввести атрибут» во внешний пакет аннотаций JetBrains:https://github.com/JetBrains/ExternalAnnotations/issues/161

Комментарии:

1. Вы имеете в виду, что эта функция будет добавлена в новую версию пакета Annotations?

Ответ №2:

Вы можете настроить Ninject для поиска пользовательского атрибута, отличного от [Inject] , передав ядру NinjectSettings с другим InjectAttribute значением. Вы должны иметь возможность наследовать этот пользовательский атрибут от UsedImplicitly , чтобы подавить предупреждение Resharper.

Комментарии:

1. Я вижу здесь две проблемы: 1) Мне нужно обновить тонны кода 2) Если к нашей команде присоединится новый человек, ему / ей будет трудно понять, что это за «другой» атрибут InjectAttribute.