2010-10-15 26 views
0

Je me demande si je peux faire quelque chose comme ça dans C#:méthode de condition personnalisée attributs en C#

public CustomerManagerScreen() 
    { 
     [TestAttirubute("CustomerManagerScreen_Load")] 
      private void CustomerManagerScreen_Load(object sender, EventArgs e) 
      { 
       CustomerLoad(); 
      } 
    } 

comme vous pouvez le voir, le nom de la méthode est un paramètre de TestAttribute, ce que je veux réaliser est CustomerManagerScreen_Load seront mis au rebut en fonction du résultat de la TestAttirubute

c'est la classe d'attributs ...

public class TestAttirubute: System.Attribute 
    { 
     private string _MethodName = string.Empty; 

     public TestAttirubute(string MethodName) 
     { 
      this._MethodName = MethodName; 
     } 

     public bool hasPermission() 
     { 
      return (SessionManager.CurrentUser.UserRole.Role.Rights.Where(a => a.Resource.Code == this._MethodName).Count() != 0) ? true: false; 
     } 
    } 
+0

Vous ne savez pas exactement ce que vous demandez; semble asp.net autorisation liée mais vous demandez d'une manière générale. aussi, 'retour vrai? vrai: faux ». – Will

Répondre

0

Pas comme ça, mais avec le ConditionalAttribute vous pouvez. Toutefois, une restriction est que vos méthodes doivent renvoyer void.