2009-08-20 79 views
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)尚未初始化。

+0

您的課程是否正確註冊?如果您嘗試解決IUserRepository會否成功? – 2009-08-20 12:53:34

回答