환경 설정 설계
Abstractions
Registration 네임스페이스: Microsoft.Extensions.DependencyInjection
AdapterInfrastructureLayerRegistration
OptionsRegistration
Options 호출 순서: XxxOptionsSetup -> XxxOptionsValidator
DatabaseOptions
DatabaseOptionsSetup 상속: IConfigureOptions<DatabaseOptions>
DatabaseOptionsValidator 상속: IValidateOptions<DatabaseOptions>
Registration
namespace Microsoft.Extensions.DependencyInjection;
public static class AdapterInfrastructureLayerRegistration
{
public static IServiceCollection RegisterAdapterInfrastructureLayer(this IServiceCollection services)
{
services.RegisterOptions();
return services;
}
}
Registration
폴더에 있는 모든 클래스 네임스페이스는Microsoft.Extensions.DependencyInjection
입니다.Host
에서 추가적인using
구문 없이...Registration.cs
에 정의한Register...
확장 메서드를 호출할 수 있습니다.
namespace Microsoft.Extensions.DependencyInjection;
public static class OptionsRegistration
{
internal static IServiceCollection RegisterOptions(this IServiceCollection services)
{
services.ConfigureOptions<DatabaseOptionsSetup>();
services.AddSingleton<IValidateOptions<DatabaseOptions>, DatabaseOptionsValidator>();
return services;
}
}
XxxRegistration
: 클래스 이름
RegisterXxx
: 메서드 이름(IServiceCollection` 확장 메서드)