http://msmvps.com/blogs/peterritchie/archive/2008/07/21/working-with-resharper-s-external-annotation-xml-files.aspx

тим, у меня есть интерфейс со свойством только для чтения и конкретным классом, в котором свойство создается в конструкторе и помечается как доступное только для чтения.

internal interface IExample
{
    ObservableCollection<string> Items { get; }
}


internal class Example : IExample
{ 
    private readonly ObservableCollection<string> _items;

    public Example()
    {
       _items = new ObservableCollection<string>();
    }

    public ObservableCollection<string> Items
    {
       get { return _items; }
    }
}

Когда я использую интерфейс, Resharper предупреждает меня, что в коде вызова может быть возможная нулевая ссылка.

public class ExampleWithWarnings
{
    public void Show()
    {
       IExample example = new Example();

       // resharper warns about null reference
       example.Items.Add( "test" );
    }
}

Я понимаю, что по определению интерфейс не гарантирует, что свойство будет иметь значение. (Я также признаю, что свойства на интерфейсах не идеальны). Но я знаю, что это свойство всегда будет иметь значение.

Есть ли какой-нибудь магический атрибут, который я могу добавить в интерфейс, который бы помешал Resharper показывать предупреждение? Я бы предпочел не украшать все виды использования класса предупреждением об отключении прагмы.

Ответы на вопрос(2)

Ваш ответ на вопрос