【问题标题】:How to suppress Resharper wide-analysis warning of properties with Inject attribute?如何抑制具有 Inject 属性的属性的 Resharper 广泛分析警告?
【发布时间】:2019-07-30 04:32:47
【问题描述】:

我们在 C# 项目中使用依赖注入器 Ninject。通常的实现方式是这样的:

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

除此之外,我为解决方案启用了 Resharper Wide Analysis,它向我显示了这一行中的警告:

  • 可以将属性“VrtSystemsFlatRepository”设为私有
  • 从不使用自动属性访问器

我内心的完美主义者看到后很痛苦,我不知道如何避免这个警告。

我知道两种方式,但我都不喜欢这两种方式。

  1. 在Inject 之外添加UsedImplicitly 属性。警告将被禁止,但我需要将此属性添加到很多地方。
  2. 为解决方案、项目或文件全局禁止警告。

【问题讨论】:

    标签: c# resharper ninject static-analysis


    【解决方案1】:

    需要在 JetBrains 的 External annotations 包中为“Ninject.InjectAttribute”添加“MeansImplicitUse”注解: https://github.com/JetBrains/ExternalAnnotations/issues/161

    【讨论】:

    • 你的意思是这个功能将被添加到新版本的 Annotations 包中?
    【解决方案2】:

    您可以将 Ninject 配置为查找除 [Inject] 之外的自定义属性,方法是让内核传递一个带有不同 InjectAttribute 的 NinjectSettings。您应该能够从 UsedImplicitly 继承此自定义属性以抑制 Resharper 警告。

    【讨论】:

    • 我在这里看到两个问题:1) 我需要更新大量代码 2) 如果有新人加入我们的团队,他/她将很难理解这个“不同”的 InjectAttribute 是什么。
    猜你喜欢
    • 2018-03-20
    • 1970-01-01
    • 2016-03-06
    • 2017-06-05
    • 1970-01-01
    • 2020-07-31
    • 1970-01-01
    • 2019-01-10
    • 1970-01-01
    相关资源
    最近更新 更多