Tworzę punkt końcowy oddzwaniający dla trafienia API strony trzeciej. Dzwoniący będzie używał do tego danych POST wieloczęściowy formularz.Serialize alternatywne nazwy właściwości z formularza w POST
coś takiego:
public SomeApiController : ApiController {
public AModel Post(AModel input) {
return input; //for demonstration
}
}
Niektóre pola będzie zamieszczać mieć kreski w nazwie, która nie może być rzeczywista nazwa właściwości .NET. Tak więc użyłem [DataContract] i [DataMember (name = "bla")] aby zdefiniować reguły serializacji.
Model:
//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)
}
Przy standardowych stanowisk XML i JSON, to działa prawidłowo. Normal i AbnormalProperty są ustawione i mogę nosić o mojej firmie.
Jednak z każdym wariantem danych formularzy (form-data, multiplart/form-data, x-urlencoded-form-dane, AbnormalProperty nie prawidłowo deserializowania do modelu, i zawsze będzie zerowy.
Czy istnieje dyrektywa mi brakuje albo coś?