Если вы используете resharper, вы можете получить его для создания предупреждений, помечая методы с помощью атрибута CanBeNull, как описано здесь: http://blogs.jetbrains.com/dotnet/2010/11/resharper-nullreferenceexception-analysis-and-its-contracts/
Это сделано с использованием некоторых классов резарпера, но для удобства вам не нужно ссылаться на библиотеку - в опциях есть кнопка, чтобы вы могли получить аннотации. Небольшая вещь, о которой следует быть осторожным: вам нужно сохранить пространство имен, в котором они находятся, - похоже, что фактическая разметка выполняется полностью определенным именем (поэтому размещение классов в ваших собственных ns и их использование не приведут к нужным предупреждениям).
Это очень полезно для свойств, которые могут быть нулевыми в классах (например, когда пользовательское решение еще не принято / может быть удалено), но когда присвоение является объектом данных, что означает, что использование шаблона нулевого объекта нецелесообразно , У нас есть один из тех в проекте, над которым я работаю, который всегда запускает новых кодеров, которые не понимают, что он может быть нулевым.