2016-02-26 3 views
5

В нашем коде мы имеем нашу собственную структуру для инъекций, чтобы позволить инъекции зависимостей, как:Resharper: как применить [NotNull] или [CanBeNull] аннотацию неявно с другим атрибутом?

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 знал семантику пользовательских атрибутов, чтобы помочь в статическом анализе?

+0

Не похоже, что это возможно в настоящее время. Я поднял вопрос на youtrack ReSharper здесь: https://youtrack.jetbrains.com/issue/RSRP-454461 –

+0

@IgalTabachnik Спасибо. Похоже, самое быстрое решение - написать собственный плагин Resharper для поддержки этого. –

+0

Теперь доступна в resharper как экспериментальная функция. – rolls

ответ

0

Теперь можно неявно использовать [NotNull] на Everthing, позволяя «неявных» в проверке кода -> Настройки

Если не указано [CanBeNull] все будет предполагаться, чтобы не допустить нуль.

enter image description here

+0

Это не то, что я имел в виду. Я хочу, чтобы Resharper понимал, что наш пользовательский атрибут имеет ту же семантику, что и NotNull или CanBeNull. –

+0

Не могли бы вы расширить их атрибут? – rolls

Смежные вопросы