2010-10-08 5 views
5

Existe-t-il un moyen d'avoir une méthode d'extension sur la méthode? Un exemple pour cela serait une méthode qui prend un objet utilisateur comme paramètre et vous devez faire un contrôle de sécurité si cet utilisateur peut utiliser cette méthode au tout début de la méthode. Est-ce que la méthode peut avoir une méthode d'extension comme "vérifier que cet utilisateur peut m'utiliser" et retourner bool.méthode d'extension pour une méthode C#

Merci.

Répondre

0

Je ne sais pas si je comprends bien votre question. Mais qu'en est-ce:

public static void EnsureUserHasAccess(this object obj) 
{ 
    // check permissions, possibly depending on `obj`'s actual type 
} 

public static void DoSomething(this MyClass obj) 
{ 
    // permissions check 
    obj.EnsureUserHasAccess(); 

    // do something about `obj` 
    … 
} 

public static void DoSomethingElse(this MyDifferentClass obj) 
{ 
    // permissions check 
    obj.EnsureUserHasAccess(); 

    // do something about `obj` 
    … 
} 
0

Extension methods en C# ne sont pas des extensions de méthodes (pas sûr de comprendre ce que cela signifie), mais les méthodes qui étendent les objets/classes.

Si vous voulez injecter le genre de contrôles que vous décrivez dans votre code, vous pouvez regarder dans PostSharp et AOP.

0

Vous pouvez aller avec la réponse de madgnome, qui est basée sur la programmation d'aspect (heureux de voir que quelqu'un l'a utilisé dans .net) ou vous pouvez utiliser des attributs et coller du code dans chaque méthode qui doit être protégée.

Questions connexes