在使用Castle Windsor的MVC解决方案中寻找有关如何使用 Property Injection 的一些文档/提示。
实现自定义成员资格提供程序,但无权访问构造函数注入。目前使用服务定位器来拉取组件,但对如何使用Windsor设置属性感到好奇。目前的代码:
public class CustomRoleProvider : System.Web.Security.RoleProvider
{
public IRepository<User> UserRepository
{
get { return ServiceLocator.Current.GetInstance<IRepository<User>>(); }
}
public override string[] GetRolesForUser(string username)
{
var user = UserRepository
.Where(x => x.Username == username)
.FirstOrDefault();
return (user==null || user.UserUserRoles==null) ? new string[] { } : user.UserUserRoles.Select(x => x.UserRole.Name).ToArray();
}
...
}
答案 0 :(得分:1)
无法使用角色提供程序的依赖注入,因为您的DI框架不负责其实例化和生命周期管理。服务定位器可能是最简单的方法。
您可能会尝试将Roles.Provider
实例传递给Castle Windsor,以便连接属性注入。您还可以查看following article。