web api如何区分过载场景中的参数类型?

时间:2014-05-05 11:21:44

标签: asp.net-web-api overloading

假设我正在为学生和用户提供POST方法。由于对象定义的限制都具有相同名称的属性。喜欢

Student : First Name ,Last Name,Address.
Employee: First Name ,Last Name,Address.

并说我的POST方法如下:

 public void Post([FromBody]Student _student)
        {//my code
        }

和另一个在同一个班级相同:

 public void Post([FromBody]Employee _employee)
        {//my code
        }

从外部设备访问此方法时说来自Android,它将是JSon对象。使用相同的参数和值格式化。溃败将如何识别执行哪种方法?

1 个答案:

答案 0 :(得分:0)

您可以为每个方法定义单独的路线,如下面的代码:

public class ContactsController : ApiController

{

    [Route("api/Contacts/Students")]
    public void Post([FromBody] Student student)
    {

    }

    [Route("api/Contacts/Employees")]
    public void Post([FromBody] Employee employee)
    {

    }

}

否则,由于含糊不清,Web API将抛出异常。