사용자 정의 속성 (AutoBindAttribute) 생성
public class AutoBindAttribute : Attribute
{
}
다음과 같이 사용하십시오 ([AutroBind]와 자동으로 바인딩하려는 모든 구현을 장식하십시오)
public interface IMyClass {}
[AutoBind]
public class MyClass : IMyClass {}
이제 IServiceCollection에 대한 확장 메소드를 작성하십시오.
public class ServiceCollectionExtentions
{
public static void AutoBind(this IServiceCollection source, params Assembly[] assemblies)
{
source.Scan(scan => scan.FromAssemblies(assemblies)
.AddClasses(classes => classes.WithAttribute<AutoBindAttribute>())
.AsImplementedInterfaces()
.WithTransientLifetime();
}
}
이제 Startup.cs에서 호출하십시오.
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AutoBind(typeof(Startup).Assembly);
}
}
참고 : ServiceCollectionExtentions
싱글 톤 등과 같은 모든 범위를 지원 하도록 클래스를 향상시킬 수 있습니다 .이 예는 일시적 수명에 대해서만 표시됩니다.
즐겨!!!