1

C# .NET 4.0 用のカスタム RoleProvider を作成しました。必要なメソッドをすべて実装し、独自のメソッドもいくつか追加しました。カスタム RoleProvider を使用するように Web.config を変更しましたが、カスタム メソッドを呼び出すことができません。たとえば、次のメソッドをカスタム RoleProvider に追加しました。

public void Myfunc(string user)
{
  var a = user;
}

ただし、このスニップを使用してメソッドを呼び出そうとすると:

Roles.MyFunc("testuser");

Myfunc 関数のインテリセンスを取得できず、VS から「System.Web.Security.RoleProvider の不明なメソッド Myfunc。必要な/メソッドがオーバーライドされ、カスタム RoleProvider にヒットしますが、RoleProvider のカスタム関数を呼び出すにはどうすればよいでしょうか?

4

2 に答える 2

1

MyFuncのメンバーではありませんRoleProvider

拡張メソッドを作成しようとしていますか?
次に、メソッドは次のようになります。

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

Rolesが独自のクラスであり、実装している場合は、MyFuncさらにコードを表示する必要があります。しかし、見た目からRolesは のインスタンスであるRoleProviderか、クラス自体である場合は、MyFuncメソッドを静的にするか、 のインスタンスを作成する必要があります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 に答える