我想将我的用户对象注入到我的 Principal 对象中,如下所示:
kernel.Get<IPrincipal>(new ConstructorArgument("user", user));
这是IPrincipal构造函数的具体实现
public Principal(User user, IUserPermissions userPermissions)
{
/* user is the correct instance, that I passed via ConstructorArgument */
}
直到这里我没有任何问题。用户对象可以很好地传递。
但是IUserPermissions 并没有收到这个对象。相反,ninject 创建了一个新的 User 实例。这里是 IUserPermissions 构造函数的具体实现:
public UserPermissions(User user, IDomainRoleValidator domainRoleValidator)
{
/* user is a fresh instance, **not** the one I passed via ConstructorArgument */
}
我怎样才能让它工作而不必添加像“SetUser”这样的新方法?