0
私はこの1つのようなWebアピコントローラーている:私のDTOはデシリアライズネストされたICollectionをAsp.NetのWeb APIで<BaseType> 2コントローラ
public IHttpActionResult Create(PaymentDTO Payment)
のとおりです。
public class PaymentDTO
{
public int Id { get; set; }
public string type { get; set; }
public IEnumerable<TransactionDTO> Transactions { get; set; }
}
public class TransactionDTO
{
public int Id { get; set; }
public string Description { get; set; }
public string CreateTime { get; set; }
public string UpdateTime { get; set; }
}
public class SaleDTO : TransactionDTO
{
public string Total { get; set; }
public string Currency{ get; set; }
}
public class OrderDTO : TransactionDTO
{
public string State {get;set;}
}
私は、次のJSON形式のデータを受け取ります:
{ "Type": "sale", "Id": 101, "transactions": [ { "Total": "30.50", "Currency": "USD", "Description": "transaction description" } ] }
Type
プロパティに基づいてIEnumerable<SaleDTO>
またはIEnumerable<OrderDTO>
のいずれかをJSON.netでインスタンス化します。
TransactionDTO
にType
プロパティがある場合に限り、カスタムタイプコンバータを使用できました。しかし、Type
プロパティが親オブジェクトにあるようにしたい(PaymentDTO
)
ありがとうございました。あなたがPaymentDTO
クラスにcustom JsonConverter
でこれを行うことができます