DDD Query多型 Controller 寫法
[JsonPolymorphic(TypeDiscriminatorPropertyName = "prdtype")] [JsonDerivedType(typeof(CarCreateRequest), "01")] [JsonDerivedType(typeof(MotoCreateRequest), "02")] [JsonDerivedType(typeof(CosmeticCreateRequest), "03")] public abstract class ProductCreateRequest { public string ProductName { get; set; } } 沒有上述那套系統寫法的話(.net core 7以前) 接Json去拆資料 [HttpPost] public IActionResult Create([FromBody] JObject data) { string type = data["PrdType"]?.ToString(); ProductCreateRequest rq = type switch { "01" => data.ToObject<CarCreateRequest>(), "02" => data.ToObject<MotoCreateRequest>(), _ => throw new Exception("Unsupported product type") }; _service.Create(rq); return Ok(); } 然後由於這個東西是算是要組Domain Model的值 因此也可以再DDD裡面做 把Request model放到DDD內就好 或者避免耦合性問題 (可能會有多個Json要拆解) 也可以建立一個Factory 專門拆解完後丟出Request 讓...