2016-04-17 109 views
3

我試圖創建驗證屬性實施許可在我的解決方案。 我試圖做到這一點的方式是通過LicenseValidationAttributeValidationAttribute繼承使用。 的主要目標是當的createProject()方法被調用,如果客戶已經達到了他的標題是項目,這將導致異常拋出了極限。否則,這將是確定的流動。 我已經寫一個小程序,但遺憾的是它不工作,意味着它不拋出異常。 程序:創建自定義屬性驗證,C#服務器端

[AttributeUsage(AttributeTargets.Method)] 
public class MyValidationAttribute : ValidationAttribute 
{ 
    public MyValidationAttribute() 
    { 

    } 
    public override bool IsValid(object value) 
    { 
     int id = (int)value; 
     if (id > 0) 
      return true; 
     throw new Exception("Error"); 
    } 
} 

public class Service 
{ 
    [MyValidation] 
    public bool GetService(int id) 
    { 
     if (id > 100) 
     { 
      return true; 
     } 
     return false; 
    } 
} 


    static void Main(string[] args) 
    { 
     try 
     { 
      Service service = new Service(); 
      service.GetService(-8); 

     } 
     catch (Exception ex) 
     { 
      Console.WriteLine(ex.Message); ; 
     } 

    } 

謝謝!

回答

0

添加的System.Reflection的GetCustomAttributes方法後調用它的工作原理:

static void Main(string[] args) 
    { 
     try 
     { 
      Service service = new Service(); 
      service.GetService(-8); 
      service.GetType().GetCustomAttributes(false); 

     } 
     catch (Exception ex) 
     { 

      Console.WriteLine(ex.Message); ; 
     } 

    } 
相關問題