Будет ли ConfigurationManager.AppSettings ["blah"] генерировать исключение, если "blah" не существует в файле web / app.config?
Искренние извинения за супер ленивый вопрос.
.net
configuration
Бен Астон
источник
источник
NameValueCollection.Item
собственность ...Ответы:
Нет, возвращается
null
.источник
Из документации MSDN для свойства NameValueCollection.Item (String) :
источник
Нет, возвращается
null
.AppSettings - это NameValueCollection - согласно предупреждению на странице NameValueCollection.Get :
источник
Нет, возвращается
null
.ConfigurationManager.AppSettings
этоNameValueCollection
- из документации MSDN :(мой акцент)
источник
Другие ответы ссылаются на документацию по свойству Item. Может быть не сразу понятно, почему они актуальны, глядя на следующий фрагмент кода.
Синтаксис квадратных скобок используется в C # для доступа к индексаторам. Это специальные свойства, которые позволяют индексировать класс так же, как и массив. Глядя на определение свойства NameValueCollection.Item , вы заметите, что оно не использует обычный синтаксис свойства. Ключевое слово this и параметры индексатора используются для определения этого свойства как индексатора.
В документации индексаторы неявно называются Item, а параметры заключаются в квадратные скобки.
Мне непонятно, почему были ответы, которые ссылались на метод Get - может быть, один вызывает другой?
Во всяком случае, чтобы ответить на вопрос ...
Нет. Исключение не будет создано, если вы получите доступ к несуществующему ключу - будет возвращено значение null.
Вот соответствующий раздел документации по свойству NameValueCollection.Item .
источник
Да http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.appsettings.aspx
Изменить: это явно неправильно. Оставил за полезными комментариями ниже.
источник
NameValueCollection
не удалось найти, то есть система не может найти никаких настроек. Коллекции значений имени не вызывают исключения, когда вы пытаетесь получить одно несуществующее значение ..