asp.net - How to introduce application-wide context object? -


i need make several properties accessible application's business layer. ids , common settings. of them valid through request-response lifespan.
web application (asp.net web forms specific) dependency injection set up.

currently properties passed through method parameters directly business layer's services. works not efficient since:

  • sometimes parameters' values need passed deeper obscuring readability bit
  • some properties should lazy resolved, , should done once per request
  • retrieving properties resolved touching database can confusing new developers (there not unified way of doing this)
  • some services constructed factory enriches them config parameters

i thinking introducing application context interface, implementation in main project, created on every request. injected services directly making them parametrized automatically , independently (services won't need factory anymore).

is how problem should tackled or maybe there other options?
1 option don't here might bond main particle business layer not perfect example of the clean architecture.

id solution common 1 - inject 'application context' classes. 1 thing careful of though making sure following integration segregation principle (from solid). dont start making classes expect application context instance. instead, design interfaces split application context up, , have classes expect them dependencies. application context need implement interfaces.

this correct way things decouples classes implementation. classes don't care if dependency 1 giant application context, care specific methods implemented it. make code more robust reduce risk of breaking if change implementation of application context later on.


Comments

Popular posts from this blog

angularjs - ADAL JS Angular- WebAPI add a new role claim to the token -

php - CakePHP HttpSockets send array of paramms -

node.js - Using Node without global install -