Я создаю консольное приложение в .NET Core 2.2.
Я добавил строго типизированную конфигурацию, например:
var configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", true)
.AddCommandLine(args)
.Build();
services.Configure<AppConfiguration>(configuration);
Моя конфигурация привязана к объекту класса AppConfiguration
.Интересно, как я могу перехватить исключения, которые могут произойти при привязке значений конфигурации к моему классу?Например, одно из моих свойств конфигурации - это enum.Если пользователь предоставляет несуществующий параметр, я получаю исключение с трассировкой стека:
в System.Enum.TryParseEnum (тип enumType, значение String, логическое значение ignoreCase, EnumResult & parseResult) в System.Enum.Parse (тип enumType, Строковое значение, Boolean ignoreCase) в System.ComponentModel.EnumConverter.ConvertFrom (контекст ITypeDescriptorContext, CultureInfo culture, Значение объекта)
По сути, мне нужен какой-то способ узнать, что произошло исключение из-за неправильной конфигурации, ине какая-то другая проблема.Если бы мне удалось перехватить какие-либо исключения, связанные с привязкой конфигурации, я мог бы выдать свое собственное исключение WrongConfigurationException, чтобы перехватить его и убедиться, что что-то не так с config.