現在、カスタム MembershipProvider の実装に取り組んでいます。しかし、追加の方法が必要です。次のように、Controller 内の Membership オブジェクトでこれらのメソッドを直接呼び出したいと思います。
メンバーシップ.DoStuff()
拡張メソッドでそれを行うことは可能ですか? どこから始めますか?ありがとう!
現在、カスタム MembershipProvider の実装に取り組んでいます。しかし、追加の方法が必要です。次のように、Controller 内の Membership オブジェクトでこれらのメソッドを直接呼び出したいと思います。
メンバーシップ.DoStuff()
拡張メソッドでそれを行うことは可能ですか? どこから始めますか?ありがとう!
拡張メソッドについてさらに学ぶことは良いスタートです。以下の記事を参照してください
http://technico.qnownow.com/2012/03/17/how-to-create-extension-methods-in-net/
それをクラス(カスタムMemebershipProviderがあります)に直接追加してから、メンバーシップクラスを自分のクラスにキャストすると、それが見つかります。
拡張メソッドについて質問する場合は、どのクラスでも機能するはずなので、質問に対する答えは「はい」です。
多くの例を試した後、拡張メソッドを静的クラスに書き込むことができないと述べているこの投稿を見つけました。
メンバーシップは静的クラスであり、拡張できません。
yes, Membership is extensible, but you don't extends static class Membership
(because it's impossible), you must extends abstract class MembershipProvider
, and calls extension methods like Membership.Provider.DoStuff()
.
For example:
extension class
namespace Infrastructure.Extensions
{
public static class MembershipProviderExtensions
{
public static void DoStuff(this MembershipProvider provider)
{
// do stuff
}
}
}
in your code
using Infrastructure.Extensions;
...
Membership.Provider.DoStuff()
...