Я смотрю на asp.net vnext технический указатель и заметил, что они рекомендуют использовать атрибут NotNull
вместо явной проверки входной аргумент для null и метания ArgumentNullException
. То, что меня смутило, заключается в том, что база в этом руководстве достаточно, чтобы объявить этот атрибут, и код проверки будет сгенерирован во время компиляции в тело метода. Я попытался сделать это в своем тестовом проекте, однако волшебство не произошло, то есть оно выбрало исключение System.NullReferenceException
вместо System.ArgumentNullException
. Как это должно работать? Будут ли они использовать некоторую библиотеку AOP для ввода кода проверки во время компиляции?
Атрибут NotNull
Ответ 1
Обновлено: 12 января 2016 г.
NotNullAttribute
отсутствует. Команда ASP.NET удалила его, и в настоящее время нет плана вернуть его.
Атрибут будет заменен на этапе предварительной компиляции, используя Roslyn, по коду, который выполняет фактическую проверку.
Однако эта функция еще не готова. Он будет представлен в более поздней версии.