Ninject insingletonscope为每个请求创建多个实例

时间:2017-03-19 10:27:11

标签: c# asp.net-web-api ninject.web

我正在学习Ninject并进行试验(这是一个web api项目)。

我写了一个控制器,它将调用存储库并更新数据源中的元素

我有一个充当数据源的类(简单易懂)

    public class UserDb
{
    private readonly List<UserModel> _listUsers;

    public UserDb()
    {
        _listUsers = new List<UserModel>();
        _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<UserModel> Users => _listUsers;
}

在我的Ninjectwebcommon文件中,我按照以下方式创建依赖项

            kernel.Bind<IUserCardDetailsRepository>().To<UserCardDetailsRepository>().InRequestScope();


        kernel.Bind<LockingObject>().ToSelf().InSingletonScope();
        kernel.Bind<UserDb>().ToSelf().InSingletonScope();

现在,对于我对控制器发出的每个请求,它都会创建UserDb的新实例,而不是使用已创建的实例。

我认为InSingletonScope会创建一次并分发它,因此对象的状态会持续存在吗?我错过了什么?

0 个答案:

没有答案