c# - WebAPI DI Framework that understands HttpContext.User -
i looking di framework can satisfy scenario:
every controller has constructor this
public thiscontroller( thatrepository repo) every repository has controller this:
public thatrepository (datasource ds) there 1 master datasource, never passed repository. instead needs:
masterdatasource.withuser ( httpcontext?.user?.identity?.name ) are there di frameworks webapi support out of box?
i believe use every di container such purpose, registering current httpcontext (or current user identity) inside container , injecting constructing datasource instance.
here simple solution using httpcontext in simpleinjector (you may port code di framework like):
container.register<httpcontextbase>(() => new httpcontextwrapper(httpcontext.current), lifestyle.scoped); container.register<datasource>(() => { var httpcontext = container.getinstance<httpcontextbase>(); return masterdatasource.withuser(httpcontext?.user?.identity?.name); }, lifestyle.scoped);
Comments
Post a Comment