我已经为C# .NET 4.0创建了一个自定义RoleProvider。我已经实现了所有必需的方法,还添加了一些我自己的方法。我已经将Web.config更改为使用我的自定义RoleProvider,但是我不能调用我的任何自定义方法。例如,我将以下方法添加到我的自定义RoleProvider中:
public void Myfunc(string user)
{
var a = user;
}但是,当我尝试使用以下代码片段调用该方法时:
Roles.MyFunc("testuser");我没有获得Myfunc函数的智能感知,VS给我一个错误:“未知System.Web.Security.RoleProvider的Myfunc方法。我可以告诉我的自定义RoleProvider正在被加载,因为我可以在一个必需的/被覆盖的方法中设置断点,它命中自定义的RoleProvider。但是我如何调用我的RoleProvider的自定义函数呢?”
发布于 2012-09-21 06:48:12
MyFunc不是RoleProvider的成员。
您是否正在尝试创建扩展方法?
那么你的方法应该是这样的:
public static void Myfunc(this System.Web.Security.RoleProvider roleProvider, string user)
{
var a = user;
}如果Roles是您自己的类,并且您已经实现了MyFunc,那么您需要向我们展示更多代码。但是从外观上看,Roles是RoleProvider的一个实例,或者如果它是您的类本身,那么您需要使MyFunc方法成为静态方法,或者创建Roles的实例。
发布于 2013-09-20 00:50:50
听起来您的自定义角色提供程序设置正确。在那里,您需要做的就是将System.Web.Security.Roles.Provider转换为您的自定义类并调用自定义方法。
它看起来像这样:
((MyProject.Helpers.CustomRoleProvider)System.Web.Security.Roles.Provider).MyFunc("testuser");
https://stackoverflow.com/questions/12521956
复制相似问题