在實現Roleprovider的同時,它從數據庫中獲取角色。我一直得到一個對象沒有...異常的實例。如何將一個Ninjects服務注入到一個自制的RoleProvider類中?
事實證明,ninject不會注入我的服務。
我試着把attribuut放在屬性頂部沒有成功。 我嘗試添加一個構造函數,但隨後即時得到的死亡黃屏告訴我應該有一個無參數的構造函數
代碼
Public Class AnipRolProvider
Inherits RoleProvider
'this service needs to get initialized
Private _memberhip As IMemberschipService
Sub New()
'only this constructor is called by asp by default
End Sub
Sub New(memberschipservice As IMemberschipService)
'this constructor should be called but how ?
_memberhip = memberschipservice
End Sub
的唯一方法,我需要
Public Overrides Function GetRolesForUser(username As String) As String()
If String.IsNullOrEmpty(username) Then
Throw New ArgumentException("username is nothing or empty.", "username")
End If
Return _memberhip.GetRolesForUser(username)
End Function
怎麼辦我實施了ninjects,讓角色提供者與忍者合作?
其他信息:
<roleManager enabled="true" defaultProvider="AnipRoleProvider">
<providers>
<clear/>
<add name="AnipRoleProvider" type="Anip.Core.AnipRolProvider" />
</providers>
</roleManager>
在我的web.config有到aniproleprovider參考。
offtopic-sidenote:在複製這些snipsets時,我應該學會寫更好的名字!
你不應該有一個參數的構造函數,可以你把代碼放在你使用AnipRolProvider的地方?我不明白你的黃色屏幕來自哪裏,你在全球註冊IMembershipService? – VinnyG 2011-04-10 18:23:56
@VinnyG添加代碼 – David 2011-04-10 18:30:44
說明YSOD上的內容很有用。 另外,你能解釋爲什麼你認爲它應該注射嗎?除非Ninject正在創建對象,否則只要將屬性放在一起就沒有任何作用。 (文檔解釋了這一點,只是重申,如果它不清楚) – 2011-04-10 22:37:50