title: Asp.Net MVC data annotation custom attribute is not working
body: <p>I need implement a cusotm attribute then using asp.net data annotation to validate a class. Unfortunately, the attribute class is not called at run time. Please help me out. Many thanks. Below is the source code.</p>
  
  <pre><code>using System;
  using System.Collections.Generic;
  using CaseMgr.Model.Base;
  
  using System.Linq;
  using System.ComponentModel.DataAnnotations;
  
  namespace CaseMgr.Model.BusinessObjects
  {
      public partial class PatLiverException : BusinessBase&lt;decimal&gt;, IComparable&lt;PatLiverException&gt;, IEquatable&lt;PatLiverException&gt;
      {
          private LiverExcepDisease _liverExcepDisease = null;
          private DateTime _sccApprovalDate = new DateTime();
  
          public PatLiverException() { }
  
          public virtual LiverExcepDisease LiverExcepDisease
          {
              get { return _liverExcepDisease; }
              set { _liverExcepDisease = value; }
          }
  
          [SccApprovalDateValidate("SccApprovalDate", "LiverExcepDisease")]
          public virtual DateTime SccApprovalDate
          {
              get { return _sccApprovalDate; }
              set { _sccApprovalDate = value; }
          }
      }
  
      public class SccApprovalDateValidateAttribute : ValidationAttribute
      {
          public string m_SccApprovalDate { get; private set; }
          public string m_LiverExcepDisease { get; private set; }
  
          public SccApprovalDateValidateAttribute(string SccApprovalDate_PropertyName, string LiverExcepDisease_PropertyName)
          {
              this.m_SccApprovalDate = SccApprovalDate_PropertyName;
              this.m_LiverExcepDisease = LiverExcepDisease_PropertyName;
          }
  
          protected override ValidationResult IsValid(object value, ValidationContext context)
          {
              var SccApprovalDate_Property = context.ObjectType.GetProperty(m_SccApprovalDate);
              DateTime SccApprovalDate_Value = (DateTime)SccApprovalDate_Property.GetValue(context.ObjectInstance, null);
  
              var LiverExcepDisease_Property = context.ObjectType.GetProperty(m_LiverExcepDisease);
              LiverExcepDisease LiverExcepDisease_Value = (LiverExcepDisease)LiverExcepDisease_Property.GetValue(context.ObjectInstance, null);
  
              if (SccApprovalDate_Value != null &amp;&amp; SccApprovalDate_Value != DateTime.MinValue &amp;&amp; SccApprovalDate_Value != DateTime.MaxValue)
              {
                  return LiverExcepDisease_Value.Id == 10 ? ValidationResult.Success : new ValidationResult("When other, SccApprovalDate can not be null.");
              }
              else
              {
                  return ValidationResult.Success;
              }
          }
      }
  }
  </code></pre>