Windsor Castle does not infuse property dependency
I have an asp.net mvc application. I created a custom membership provider which is linked in the web.config like this:
<membership defaultProvider="MyMembershipProvider">
<providers>
<clear/>
<add name="MyMembershipProvider" type="MyProject.Infrastructure.Security.MyMembershipProvider" />
</providers>
</membership>
I am using Castle Windsor for IoC. I usually use constructor injection something like:
SomeController(ISomething something)
{
something.do();
...
}
I cannot use this for a custom membership class because I am getting an error from web.config that I have no parameterless constructor. But if I used a parameterless constructor, the object would not be initialized.
So, I used property injection like this:
<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;
}
}
And I am getting an object reference not found exception because the (UserRepository) object has not been initialized.
+2
source to share