2016-04-17 2 views
3

Я пытаюсь создать атрибут проверки для принудительного лицензирования в своем решении. Способ, которым я пытался это сделать, используется LicenseValidationAttribute, который наследует от ValidationAttribute. Основная цель - вызывать метод 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

После добавления GetCustomAttributes метода System.Reflection назовем это работает:

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

     } 
     catch (Exception ex) 
     { 

      Console.WriteLine(ex.Message); ; 
     } 

    }