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
Post a Comment