title: Static class best practice
body: <p>I have a project where CurrentSettings and CurrentUser classes are needed in every controller.
  I was using static classes to get these, but someone suggested Wrapper classes because using static classes is bad.</p>
  
  <p>My issue is that in every controller I have to do this:</p>
  
  <pre><code>    #region Fields
  
      private readonly ProfileService service;
      private readonly Profile currentUser;
      private readonly Settings currentSettings;
  
      #endregion
  
      #region Constructors
  
      public _UsersController()
      {
          var companyWrapper = new CompanyWrapper();
          var profileWrapper = new ProfileWrapper();
          var settingsWrapper = new SettingsWrapper();
  
          var companyId = companyWrapper.CurrentCompanyId();
  
          service = new ProfileService(companyId);
          currentUser = profileWrapper.CurrentUser();
          currentSettings = settingsWrapper.CurrentSiteSettings();
      }
  
      #endregion
  </code></pre>
  
  <p>which I think is a nightmare. Surely there is a better cleaner way of doing this.
  If anyone can point me in the right direction I would be grateful.</p>
  
  <p>PS: I use the repository/service design pattern for almost everything within this project.</p>
  
  <p>Cheers,
  /r3plica</p>