- FluiTec.AppFx.Options : simplify the handling of json-configuration-files
- install FluiTec.AppFx.Options
- setup appsettings
- setup dependency injection
- create a class containing options (and possibly a validator), example:
using FluentValidation;
using FluiTec.AppFx.Options.Attributes;
namespace FluiTec.AppFx.Options.ConsoleSample.Configuration
{
[ConfigurationKey("AppSettings")]
public class ApplicationSettings
{
public string Name { get; set; }
}
public class ApplicationSettingsValidator : AbstractValidator<ApplicationSettings>
{
public ApplicationSettingsValidator()
{
RuleFor(setting => setting.Name).NotEmpty().Length(1, 15);
}
}
}
- configure dependency injection
// config is typeof(IConfigurationRoot)
// create a ConfigurationManager for the Configuration
var manager = new ConsoleReportingConfigurationManager(config);
// services is typeof(IServiceCollection)
// register the application-settings
services.Configure<ApplicationSettings>(manager);
// configure a validator
manager.ConfigureValidator(new ApplicationSettingsValidator());