2012-04-10 10 views
1

Ich arbeite derzeit an einer benutzerdefinierten MembershipProvider-Implementierung. Aber ich brauche zusätzliche Methoden. Ich mag diese Methoden direkt auf dem Membership Objekt innerhalb meines Controller so nennen:Hinzufügen der Erweiterungsmethode zu MembershipProvider

Membership.DoStuff()

Ist es möglich, mit einer Erweiterung Methode zu tun? Wo würde ich anfangen? danke!

Antwort

0

Nachdem ich viele Beispiele ausprobiert habe, habe ich this post gefunden, wo sie angeben, dass Sie keine Erweiterungsmethoden in eine statische Klasse schreiben können.

Mitgliedschaft ist eine statische Klasse und Sie können sie nicht erweitern.

0

Warum Sie es nicht direkt zu Ihnen Klasse (die die benutzerdefinierte MemebershipProvider haben), dann die Mitgliedschaft clasd gieße Ihr dann finden Sie es.

Wenn Sie nach den Erweiterungsmethoden fragen, sollte es für jede Klasse funktionieren, also ist die Antwort auf Ihre Frage ja.

0

ja, Mitgliedschaft ist erweiterbar, aber Sie nicht statische Klasse erweitert Membership (weil es unmöglich ist), müssen Sie sich abstrakte Klasse MembershipProvider und fordert Erweiterungsmethoden wie Membership.Provider.DoStuff().

Zum Beispiel:

Erweiterungsklasse

namespace Infrastructure.Extensions 
{ 
    public static class MembershipProviderExtensions 
    { 
     public static void DoStuff(this MembershipProvider provider) 
     { 
      // do stuff 
     } 
    } 
} 

im Code

using Infrastructure.Extensions; 
... 
Membership.Provider.DoStuff() 
...