title: named parameter type constraints
body: <p>I am designing a custom attribute class.</p>
  
  <pre><code>public class MyAttr: Attribute
  {
      public ValueRange ValRange { get; set; }
  }
  </code></pre>
  
  <p>Then I am attempting to assign this attribute to a property in an adjoining class:</p>
  
  <pre><code>public class Foo
  {
      [MyAttr(ValRange= new ValueRange())]
      public string Prop { get; set; }
  }  
  </code></pre>
  
  <p>However, the compiler is complaining the following:</p>
  
  <blockquote>
    <p>'ValRange' is not a valid named attribute argument because it is not a valid attribute parameter type</p>
  </blockquote>
  
  <p>I also tried converting the ValueRange class to a <code>struct</code> in hopes that become a value type might solve the problem. Is there any way around this?</p>