c# - Using Simple Injector to register lazy parameters by reflection -


my service classes have 2 irepository instance(icacherepository , isqlrepository), icacherepository implementations use in services, isqlrepository implementations use. register implementations of icacherepository interface in simple injector reflection:

var registrations = assembly.getexportedtypes()    .where(type => type.isclass && basetype.isassignablefrom(icacherepository))    .select(type => new { interface = type.getinterfaces().first(), implementation = type });  foreach (var reg in registrations) {     container.register(reg.interface, reg.implementation, lifestyle.transient); } 

i found lazy register solution registering 1 instance of interface. want register implementations of isqlrepository interface in lazy mode reflection. desired solution is:

var registrations = assembly.getexportedtypes()    .where(type => type.isclass && basetype.isassignablefrom(isqlrepository))    .select(type => new { interface = type.getinterfaces().first(), implementation = type });  foreach (var reg in registrations) {     container.register(() => new lazy<reg.interface>(container.getinstance<typeof(reg.implementation) >), lifestyle.transient); } 

is there solution described problem?


Comments

Popular posts from this blog

python - Operations inside variables -

Generic Map Parameter java -

arrays - What causes a java.lang.ArrayIndexOutOfBoundsException and how do I prevent it? -