당신은 당신의 규칙에 따라 이름을 확인하는 반사를 사용하여 Starup에 뭔가를 할 수 있습니다.
내가 유사한 수행하지만, 속성의 존재를 확인했습니다
https://github.com/ovation22/IntroToDependencyInjection/tree/master/DI.Web.Ex09
:
private static void RegisterServices()
{
var serviceList = AppDomain.CurrentDomain.GetAssemblies()
.Where(aa => aa.FullName.IndexOf("DI.Web.Ex09", StringComparison.Ordinal) > -1)
.SelectMany(a =>
a.GetTypes()
.Where(t => t.HasAttribute(typeof(InjectAttribute)) && t.IsPublic)
);
foreach (var t in serviceList)
{
var attribs = t.GetCustomAttributes<InjectAttribute>();
foreach (var attrib in attribs)
{
_builder.RegisterType(t)
.As(attrib.BindingType).InstancePerRequest();
}
}
}
이 여기에 전체 예를 참조하십시오