我正在学习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会创建一次并分发它,因此对象的状态会持续存在吗?我错过了什么?