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

Popular posts from this blog

scala - 'wrong top statement declaration' when using slick in IntelliJ -

c# - DevExpress.Wpf.Grid.InfiniteGridSizeException was unhandled -

PySide and Qt Properties: Connecting signals from Python to QML -