2017-09-18 6 views

Antwort

1

Sie könnten etwas in Starup tun mithilfe von Reflektion für Namen auf Ihrer Konvention basiert überprüfen.

Ich habe ähnliche getan, aber für die Existenz eines Attributs Überprüfung:

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(); 
     } 
    } 
} 

hier die vollständige Beispiel Siehe:

https://github.com/ovation22/IntroToDependencyInjection/tree/master/DI.Web.Ex09

Verwandte Themen