nei*_*ldt 0 c# asp.net-web-api
我的WebAPI 2项目中有以下方法.
public class TestController : ApiController
{
[HttpPost]
public void Test(HttpRequestMessage request)
{
var content = request.Content;
string jsonContent = content.ReadAsStringAsync().Result;
}
}
Run Code Online (Sandbox Code Playgroud)
我的自定义对象看起来像这样;
public class Test
{
public int Id { get; set; }
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
如果我发布一些样本数据,如
<Test>
<Id>12345</Id>
<Name>My Name</Name>
</Test>
Run Code Online (Sandbox Code Playgroud)
jsonContent中的结果值是正确的.我的问题是我应该如何最好地将HttpRequestMessage(内容)序列化到我的对象Test中,以便我可以执行其他验证/任务等.
我应该将HttpRequestMessage传递给方法还是可以传递类似的东西
public void Test(Test oTest)
Run Code Online (Sandbox Code Playgroud)
听起来你正在问如何将jsonContent反序列化为Test类的新实例,正如上面提到的第一条评论.我建议调查Json.NET.然后你可以这样做:
public class TestController : ApiController
{
[HttpPost]
public void Test(HttpRequestMessage request)
{
var content = request.Content;
string jsonContent = content.ReadAsStringAsync().Result;
Test test = new Test();
test = JsonConvert.DeserializeObject<Test>(jsonContent);
//Do validation stuff...
}
}
Run Code Online (Sandbox Code Playgroud)