2010-10-08 18 views
5

Czy istnieje sposób, aby zastosować metodę rozszerzenia? Przykładem może być metoda, która pobiera jakiś obiekt użytkownika jako parametr i konieczne jest sprawdzenie bezpieczeństwa, jeśli ten użytkownik może użyć tej metody na samym początku metody. Czy metoda może mieć metodę rozszerzającą, taką jak "sprawdź, czy ten użytkownik mnie używa" i zwróci wartość logiczną.metoda rozszerzenia dla metody C#

Dzięki.

Odpowiedz

0

Nie jestem pewien, czy rozumiem pytanie dobrze. Jednak to, co na ten temat:

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 w C# nie są rozszerzenia metod (nie wiem, rozumiem, co to znaczy), ale metody, które rozciągają się obiektów/klas.

Jeśli chcesz wprowadzić rodzaj sprawdzania, który opisujesz, wpisz PostSharp i AOP.

0

Możesz przejść z odpowiedzią madgnome, która jest oparta na programowaniu aspektowym (cieszymy się, że ktoś użył tego w .net) lub możesz użyć atrybutów i wkleić kod w każdej metodzie, która powinna być strzeżona.

Powiązane problemy