Thursday, 15 September 2011

autofac - Get a list of all registered objects implementing a certain interface -



autofac - Get a list of all registered objects implementing a certain interface -

consider following

builder.register(c => new a()); builder.register(c => new b()); builder.register(c => new c());

b , c both isomeinterface.

i ienumerable of registered objects implement isomeinterface.

how can accomplish in autofac?

just tried this, works , not depend on lifetime context:

enumerate types using activator instead

var types = con.componentregistry.registrations.where(r => typeof(isomeinterface).isassignablefrom(r.activator.limittype)).select(r => r.activator.limittype);

then resolve:

ienumerable<isomeinterface> lst = types.select(t => con.resolve(t) isomeinterface);

autofac

No comments:

Post a Comment