title: Is it possible to use the Required ValidationAttribute with value types?
body: <p>I've decorated a class with:</p>
  
  <pre><code>[Required(ErrorMessage = "Price is required.")]
  public decimal Price { get; set; }
  </code></pre>
  
  <p>But when validating it with code:</p>
  
  <pre><code>   for each (PropertyInfo prop in Me.GetType().GetProperties())
     {
          if (prop.GetIndexParameters().Length = 0)
          {
              for each (ValidationAttribute validatt in prop.GetCustomAttributes(GetType(ValidationAttribute), True))
              {
                  if (!validatt.IsValid(prop.GetValue(Me, Nothing))
                  {
                      retval.Add(New PropertyValidationError(prop.Name, string.Format("There is a problem with the {0} property. It is flagged with the {1}", prop.Name, validatt.GetType.Name), validatt.ErrorMessage));
                  }
              }
          }
      }
  </code></pre>
  
  <p>I'm finding that a value of <code>0</code> is being treated as fulfilling the "requiredness", which is not what I intended (in fact, I wanted to allow any value <em>other than</em> zero) - is it my validation code doing the wrong thing, or is there a way to use decorate with a <code>ValidationAttribute</code> that will fail for default values for value types?</p>