C# ReSharper:如何使用另一个属性隐式应用[NotNull]或[CanBeNull]注释?
在我们的代码中,我们有自己的注入框架来支持依赖项注入,如:C# ReSharper:如何使用另一个属性隐式应用[NotNull]或[CanBeNull]注释?,c#,resharper,static-analysis,C#,Resharper,Static Analysis,在我们的代码中,我们有自己的注入框架来支持依赖项注入,如: public class MyClass { [Component("ComponentName1")] // means [NotNull] public MyType NotNullComponent{ get; set; } [OptionalComponent("ComponentName2")] // means [CanBeNull] publ
public class MyClass {
[Component("ComponentName1")] // means [NotNull]
public MyType NotNullComponent{ get; set; }
[OptionalComponent("ComponentName2")] // means [CanBeNull]
public MyType CanBeNullComponent { get; set; }
}
我们不想再到处添加[CanBeNull]
或[NotNull]
,因为它将语义复制到[Component]
和[OptionalComponent]
属性
可以让ReSharper知道自定义属性的语义以帮助静态分析吗?您现在可以通过在代码检查->设置中启用“隐式”来隐式使用[NotNull] 除非指定[CanBeNull],否则将假定所有内容都不允许null
目前看来不太可能。我在ReSharper的youtrack上提出了一个问题:@IgalTabachnik谢谢。现在看来,最快的解决方案是编写我们自己的Resharper插件来支持它。现在Resharper作为一个实验性功能提供。这不是我的意思。我想让Resharper了解我们的自定义属性与NotNull或CanBeNull具有相同的语义。您能扩展它们的属性吗?