1

我为 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 的自定义函数呢?

4

2 回答 2

1

MyFunc is not a member of RoleProvider.

Are you trying to create an Extension Method?
Then your method should look like this:

public static void Myfunc(this System.Web.Security.RoleProvider roleProvider, string user)
{
  var a = user;
}

If Roles is your own class and you've implemented MyFunc then you need to show us more code. But from the looks of it Roles is an instance of RoleProvider or if it is your class itself then you need to make the MyFunc method static or create an instance of Roles.

于 2012-09-20T22:48:11.770 回答
0

听起来您的自定义角色提供程序设置正确。从那里您需要做的就是将 System.Web.Security.Roles.Provider 转换为您的自定义类并调用自定义方法。

它看起来像这样:

((MyProject.Helpers.CustomRoleProvider)System.Web.Security.Roles.Provider).MyFunc("testuser");

于 2013-09-19T16:50:50.297 回答