2
我有asp.net mvc应用程序。我创建了一个自定义的成员提供 是在web.config中必然是这样的:城堡windsor不注入依赖属性
<membership defaultProvider="MyMembershipProvider">
<providers>
<clear/>
<add name="MyMembershipProvider" type="MyProject.Infrastructure.Security.MyMembershipProvider" />
</providers>
</membership>
我使用温莎城堡为510C。我通常使用构造注入是这样的:
SomeController(ISomething something)
{
something.do();
...
}
,因为我得到的web.config一个错误,我没有参数的构造函数,我不能用这个自定义成员类。但是如果我使用无参数的构造函数,对象将不会被初始化。
所以我用财产注入,像这样:
<castle>
<components>
<component id="usersRepos" service="MyProject.Core.Repositories.IUserRepository, MyProject.Core" type="MyProject.Data.RepositoryImplementations, MyProject.Data"></component>
</components>
</castle>
...
public class MyMembershipProvider : MembershipProvider
{
public IUserRepository UserRepository{get; set;}
public override bool ValidateUser(string username, string password)
{
if (UserRepository.UserExists(username, password))
{
return true;
}
return false;
}
}
我也得到对象引用未发现异常,因为对象(UserRepository)尚未初始化。
您的课程是否正确注册?如果您尝试解决IUserRepository会否成功? – 2009-08-20 12:53:34