2

我正在学习 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 创建一次并分发它,所以对象的状态仍然存在?我错过了什么?

4

0 回答 0