title: Ninject insingletonscope creating multiple instances per request
body: <p>I'm learning Ninject and doing a trial (thur a web api project). </p>
  
  <p>I wrote a controller, which will call a repository and update elements in a data source</p>
  
  <p>I have a class which acts as a data source (to kee things simple)</p>
  
  <pre><code>    public class UserDb
  {
      private readonly List&lt;UserModel&gt; _listUsers;
  
      public UserDb()
      {
          _listUsers = new List&lt;UserModel&gt;();
          _listUsers.Add(new UserModel { UserId = "A123", CreditRemaining = 10.00, LastModified = DateTimeOffset.Now });
          _listUsers.Add(new UserModel { UserId = "ABC1", CreditRemaining = 20.35, LastModified = DateTimeOffset.Now });
      }
  
      public List&lt;UserModel&gt; Users =&gt; _listUsers;
  }
  </code></pre>
  
  <p>In my Ninjectwebcommon file I create dependencies in following way</p>
  
  <pre><code>            kernel.Bind&lt;IUserCardDetailsRepository&gt;().To&lt;UserCardDetailsRepository&gt;().InRequestScope();
  
  
          kernel.Bind&lt;LockingObject&gt;().ToSelf().InSingletonScope();
          kernel.Bind&lt;UserDb&gt;().ToSelf().InSingletonScope();
  </code></pre>
  
  <p>Now for every request I make to the controller, it creates a new instance of UserDb, instead of using the one already created.</p>
  
  <p>I thought InSingletonScope creates it once and distributes it, so the state of the object persists? What am I missing?</p>