Я пытаюсь загрузить файл json и файл схемы json при запуске приложения и проверить json с помощью загруженной схемы.
Я вижу только AddOptions возможность запускать проверки при запуске.
Можно ли сделать что-то подобное, но с помощью метода TryAddSingleton()?
Или, может быть, с помощью другого метода?< /p>
В настоящее время у меня есть следующее для загрузки и регистрации строго типизированных моделей моего файла json.
private static IServiceCollection AddConfig(
this IServiceCollection services,
string jsonSchemaPath)
where TConfig : class, IConfig
{
services.TryAddSingleton((sp) =>
{
var configService = sp.GetRequiredService();
var config = configService.LoadAsync(
jsonSchemaPath)
.GetAwaiter()
.GetResult();
if (config is null)
{
throw new ConfigMissingException(nameof(TConfig));
}
bool valid = config.Validate();
if (!valid)
{
throw new ConfigInvalidException(
nameof(TConfig),
config
.GetValidationErrors()
.ToList());
}
return config;
});
return services;
}
ОБНОВЛЕНИЕ
services
.AddOptions()
.Configure((config, configService) =>
{
var c = configService.LoadAsync(
jsonSchemaPath)
.GetAwaiter()
.GetResult();
if (c is null)
{
throw new ConfigMissingException(nameof(TConfig));
}
// Populate config here
})
.Validate((c) =>
{
bool valid = c.Validate();
if (!valid)
{
throw new ConfigInvalidException(
nameof(TConfig),
c
.GetValidationErrors()
.ToList());
}
return valid;
})
.ValidateOnStart();
Подробнее здесь: https://stackoverflow.com/questions/790 ... ons-object
Внедрение зависимостей .NET — проверка при запуске объекта, отличного от IOptions. ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Внедрение зависимостей .NET — проверка при запуске объекта, отличного от IOptions.
Anonymous » » в форуме C# - 0 Ответы
- 12 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Внедрение зависимостей .NET — проверка при запуске объекта, отличного от IOptions.
Anonymous » » в форуме C# - 0 Ответы
- 7 Просмотры
-
Последнее сообщение Anonymous
-