c# - ASP.NET Core Web API:xmlns 不是预期的
问题描述
我正在尝试构建一个将 XML 作为请求数据的 API。
我的控制器动作:
[HttpPost]
[Route("/api/MyApi/CalculateMyPrice")]
public virtual ActionResult<IEnumerable<string>> CalculateMyPrice(Request request)
{}
我的模型类是:
public partial class Request
{
public RequestHeader ReqHdr { get; set; }
}
public partial class RequestHeader
{
public string MsgId { get; set; }
}
和我的 XML 格式设置:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc()
.SetCompatibilityVersion(CompatibilityVersion.Version_2_2)
.AddXmlSerializerFormatters();
}
但是当我尝试使用 POSTMAN 访问此方法时,我收到此错误:
InvalidOperationException:
<Request xmlns='urn:com.mysystems:api-message.002'>
不是预期的。
但是当我xmlns=
从请求 XML 中删除时,我得到了正确的响应。
也许我在这里遗漏了一些东西?有任何想法吗?
解决方案
xml namespace
在有效负载中应用 an时xml
,您还必须指出相应的模型/类正在使用并期待这个命名空间。
为此,您可以使用XmlRootAttribute
.
[XmlRoot(Namespace ="urn:com.mysystems:api-message.002")]
public partial class Request
{
public RequestHeader ReqHdr { get; set; }
}
public partial class RequestHeader
{
public string MsgId { get; set; }
}
推荐阅读
- c# - ComboBox 在 DisplayMember 和 ValueMember 中重复相同的值
- typescript - TypeScript 一种基于接口的可选构造函数参数的更好方法
- laravel - 新用户使用默认注册码注册时 Laravel 运行代码
- ios - 在 SwiftUI 中的 onDelete 执行中添加 func
- jwt - 为什么我无法验证我的 Azaure AD JWT 签名?
- javascript - Cookie 不在页面之间传输 (JS)
- asp.net-mvc - 图片上传功能对我来说无法正常工作
- go - 为什么使用多个以太网连接会降低 I/O 绑定任务的吞吐量
- c# - C# 调用 Rscript 但没有输出
- wordpress - WordPress 联系表 7 - 用于下拉选择的不同重定向页面