2016-02-26 27 views
5

W naszym kodzie mamy własne ramy wtrysku w celu umożliwienia iniekcji zależność, jak:Resharper: Jak zastosować adnotację [NotNull] lub [CanBeNull] niejawnie dla innego atrybutu?

public class MyClass { 
    [Component("ComponentName1")] // means [NotNull] 
    public MyType NotNullComponent{ get; set; } 

    [OptionalComponent("ComponentName2")] // means [CanBeNull] 
    public MyType CanBeNullComponent { get; set; } 
} 

Nie chcemy, aby dodać [CanBeNull] lub [NotNull] wszędzie ponownie ponieważ został powielony semantykę do [Component] i [OptionalComponent] atrybutów.

Czy można pozwolić programowi Resharper poznać semantykę niestandardowych atrybutów, aby ułatwić analizę statyczną?

+0

Nie wygląda na to, że obecnie jest to możliwe. Podniosłem problem na youtrack ReSharper tutaj: https://youtrack.jetbrains.com/issue/RSRP-454461 –

+0

@IgalTabachnik Dzięki. Wydaje się, że najszybszym rozwiązaniem na razie jest napisanie własnej wtyczki Resharper, aby to wspierać. –

+0

Teraz dostępny w resharper jako funkcja eksperymentalna. – rolls

Odpowiedz

0

Teraz można niejawnie używać [NotNull] na everthing poprzez umożliwienie „niejawny” Code Inspekcji -> Ustawienia

ile podasz [CanBeNull] wszystko będzie założyć, aby nie pozwolić null.

enter image description here

+0

Nie o to mi chodziło. Chcę, aby Resharper zrozumiał, że nasz atrybut niestandardowy ma taką samą wartość semantyczną jak NotNull lub CanBeNull. –

+0

Czy możesz przedłużyć ich atrybut? – rolls