![](/img/trans.png)
[英]Has HttpContent.ReadAsAsync<T> method been superceded in .NET Core?
[英]ReadAsAsync cast custom class return null for .net core
我有一个旧的 MVC 程序,转换为 .net 内核。 但我面临 ReadAsAsync() 铸造问题。 相同的代码适用于旧 MVC,但不适用于 .NET 核心。
我有一个用户 model:
public class User
{
public int Id { get; set; }
public string Username { get; set; }
public string Password { get; set; }
public int Status { get; set; }
public string Address { get; set; }
}
我尝试使用以下代码来测试结果,以获取 wep api HttpResponseMessage:
string responseContent = await content.ReadAsStringAsync();
并成功返回以下用户数据:
{"id":1, "username":"howard","password":"xxxxx","status":1,"Address":null}
当我使用下面的代码对用户 model 进行响应时,正在查找并返回用户 model。
//worked
var data = await content?.ReadAsAsync<User>();
但是,当我添加一个自定义 ApiResult class 时,它变得无法正常工作,并为 ApiResult class 中的“结果”属性返回 null。
//not work
var data = await content?.ReadAsAsync<ApiResult<User>>()
但它适用于旧 MVC:
我的 ApiResult class:
public class ApiResult
{
public bool CustomizedisSuccess { get; set; }
public string CustomizedErrorMsg { get; set; }
public static ApiResult<T> Success<T>(T result = default(T))
{
return new ApiResult<T>
{
Result = result,
CustomizedisSuccess = true,
CustomizedErrorMsg = "Error"
};
}
}
public class ApiResult<T> : ApiResult
{
public T Result { get; set; }
}
结果总是返回 null,正确地假设转换为用户 model。 相同的代码在以前的 MVC 中有效,但在 .NET 核心中无效。
将其反序列化为User
(因为这就是 JSON 的内容),然后将其嵌入到ApiResult
中。 看起来你已经有了一个辅助方法。
var user = await content?.ReadAsAsync<User>();
var data = ApiResult.Success(user);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.