title: Why "decimal" is not a valid attribute parameter type?
body: <p>It is really unbelievable but real. This code will not work:</p>
  
  <pre><code>[AttributeUsage(AttributeTargets.Property|AttributeTargets.Field)]
  public class Range : Attribute
  {
      public decimal Max { get; set; }
      public decimal Min { get; set; }
  }
  
  public class Item
  {
      [Range(Min=0m,Max=1000m)]  //compile error:'Min' is not a valid named attribute argument because it is not a valid attribute parameter type 
      public decimal Total { get; set; }  
  }
  </code></pre>
  
  <p>While this works:</p>
  
  <pre><code>[AttributeUsage(AttributeTargets.Property|AttributeTargets.Field)]
  public class Range : Attribute
  {
      public double Max { get; set; }
      public double Min { get; set; }
  }
  
  public class Item
  {
      [Range(Min=0d,Max=1000d)]
      public decimal Total { get; set; }  
  }
  </code></pre>
  
  <p>Who can tell me why double is OK while decimal is not.</p>