我为C#.NET 4.0创建了一个自定义RoleProvider。我已经实现了所有必需的方法,并且我还添加了一些自己的方法。我已将Web.config更改为使用我的自定义RoleProvider,但我无法调用任何自定义方法。例如,我已将以下方法添加到我的自定义RoleProvider中:
public void Myfunc(string user)
{
var a = user;
}
但是,当我尝试使用此剪辑调用该方法时:
Roles.MyFunc("testuser");
我没有得到Myfunc函数的intellisense,VS给我错误“System.Web.Security.RoleProvider的未知方法Myfunc。我可以告诉我正在加载我的自定义RoleProvider,因为我可以在其中一个中设置断点必需/重写的方法,它命中自定义RoleProvider。但是如何调用RoleProvider的自定义函数?
答案 0 :(得分:1)
MyFunc
不是RoleProvider
的成员。
您是否尝试创建扩展方法?
那你的方法应该是这样的:
public static void Myfunc(this System.Web.Security.RoleProvider roleProvider, string user)
{
var a = user;
}
如果Roles
是您自己的班级并且您已实施MyFunc
,那么您需要向我们展示更多代码。但从它的外观来看Roles
是RoleProvider
的一个实例,或者如果它是你自己的类,那么你需要将MyFunc
方法设为静态或创建Roles
的实例
答案 1 :(得分:0)
听起来您的自定义角色提供程序设置正确。从那里你需要做的就是将System.Web.Security.Roles.Provider强制转换为自定义类并调用自定义方法。
它看起来像这样:
((MyProject.Helpers.CustomRoleProvider)System.Web.Security.Roles.Provider).MyFunc( “TESTUSER”);