在实现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