Sto creando un endpoint di callback per l'attivazione di un'API di terze parti. Il chiamante invierà ad esso i dati del modulo multiparte.Serializza i nomi di proprietà alternative dal modulo in POST
Qualcosa di simile a questo:
public SomeApiController : ApiController {
public AModel Post(AModel input) {
return input; //for demonstration
}
}
Alcuni dei campi sarà Post hanno trattini nel nome, che non può essere un nome effettivo di proprietà .NET. Quindi, ho usato [DataContract] e [DataMember (name = "blah")] per definire le regole di serializzazione.
Modello:
//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)
}
Con i messaggi XML e JSON standard, questo funziona bene. Le normali e AbnormalProperty sono impostate e posso portare avanti la mia attività.
Tuttavia, con qualsiasi variante di dati del modulo (form-data, multiplart/form-data,-form-urlencoded dati x-, AbnormalProperty non correttamente deserializzare nel modello, e sarà sempre nullo.
c'è una direttiva mi manca o cosa?