Я использую клиент для вызова API. В API - я хочу, чтобы модель заполнялась из тела запроса, - но я хочу, чтобы модель была структурирована по-разному в зависимости от имени одного свойства. По сути, я хочу создать что-то вроде сценария «переключение / случай» с моделью данных, но не уверен, как это реализовать. Последняя модель содержит псевдокод, основанный на том, что я хочу достичь (очевидно, универсальный тип не будет работать так, как я описал, но я чувствую, что он завершает мой пример). Вот мой пример:
Контроллер:
[HttpPost("customer", Name = "Submit Customer")]
public IActionResult ActivateCustomer([FromBody]Customer customer)
{
//Do something with the Customer object.
return Ok();
}
Модель клиента:
public class Customer
{
public CustomerInfo customerInfo { get; set; }
public SponserInfo sponserInfo { get; set; }
}
CustomerInfo:
public class CustomerInfo
{
public int CustomerId { get; set; }
public string CustomerName { get; set; }
//etc.
}
SponserA:
public class SponserA
{
public int ReferenceId { get; set; }
public string Password { get; set; }
}
SponserB:
public class SponserB
{
public string UserName{ get; set; }
public string Relation { get; set; }
public string Department { get; set; }
}
SponserInfo: (псевдокод того, что я хотел бы)
public class SponserInfo
{
public string SponserName { get; set; }
public T SponserInfo { get; set; }
switch(this.SponserName)
{
case "Sponser A's Name":
T = SponserA;
break;
case "Sponser B's Name":
T = SponserB;
break;
}
}