我正在使用.net core 3.0创建Web API。我想将通用模型序列化为XML
。但是默认情况下,它将通用模型仅序列化为JSON
。
当我尝试将一个简单模型序列化为XML
时,它会正确地序列化为XML
。
根据传递的标头,我想序列化模型。这是我到目前为止所做的:
在startup.cs文件中:
services.AddControllers(options =>{
options.RespectBrowseracceptheader = true; // false by default
}).
AddXmlSerializerFormatters().
下面是代码示例:
我的通用模型:
public class ApiResponseModel<T>
{
public int ErrorCode { get; set; }
public string ErrorMessage { get; set; }
public T Data { get; set; }
public ApiResponseModel(int errorCode,string errorMessage,T data)
{
this.ErrorCode = errorCode;
this.ErrorMessage = errorMessage;
this.Data = data;
}
}
返回数据的操作:
[HttpGet]
public async Task<IactionResult> Get()
{
IEnumerable<RoleDTO> roleList = null;
roleList = await _repository.RoleRepository.GetallRolesAsync();
var data = new ApiResponseModel<IEnumerable<RoleDTO>>(200,"Success",roleList);
return Ok(data);
}
通过JSON
标头将此返回accept
响应指定为application/xml
。
但是,如果我只返回roleList,它将以XML
格式给出响应。
[HttpGet]
public async Task<IactionResult> Get()
{
IEnumerable<RoleDTO> roleList = null;
roleList = await _repository.RoleRepository.GetallRolesAsync();
return Ok(roleList);
}
我也如何获得通用模型的XML
响应?