【发布时间】:2013-08-08 10:27:07
【问题描述】:
我想像这样将我的用户对象注入到我的 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”这样的新方法的情况下让它工作?
【问题讨论】: