title: Serialize alternate property names from form in POST
body: <p>I am creating a callback endpoint for a third party API to hit.
  The caller will POST multipart form data to it.</p>
  
  <p>Something like this:</p>
  
  <pre class="lang-cs prettyprint-override"><code>public SomeApiController : ApiController {
    public AModel Post(AModel input) {
      return input; //for demonstration
    }
  }
  </code></pre>
  
  <p>Some of the fields it will post have dashes in the name, which cannot be an actual .NET property name. So, I used [DataContract] and [DataMember(name="blah")] to define serialization rules.</p>
  
  <p>Model:</p>
  
  <pre class="lang-cs prettyprint-override"><code>//input model class
  [DataContract]
  public class AModel {
    [DataMember]
    public string NormalProperty {get; set;} //value set appropriately
    [DataMember(Name="abnormal-property")]
    public string AbnormalProperty {get; set;} //always null (not serializing)
  }
  </code></pre>
  
  <p>With standard XML and JSON posts, this works fine. Normal and AbnormalProperty are set and I can carry about my business.</p>
  
  <p>However, with any variant of form data (form-data, multiplart/form-data, x-urlencoded-form-data, AbnormalProperty doesn't properly deserialize into the model, and will always be null.</p>
  
  <p>Is there a directive I'm missing or something?</p>