c# - 使用 XElement 时的无参数构造函数异常
问题描述
我正在编写一个 POST API,其中代码将接收一个 XML 对象作为有效负载来检查某些数据,然后将其传递给第三方 API。
[System.Web.Mvc.HttpPost]
public string SubscriptionSettings([FromBody] XElement request)
{
if (request != null && request.HasAttributes)
{
//Logic
}
return "some value";
}
不幸的是,我收到错误No parameterless constructor defined for this object。 我明白我应该为XElement创建一个无参数的构造函数。
但我认为在这种情况下这不是正确的方法。
示例请求有效负载:
<Envelope>
<Body>
<Select>
<LIST>AAA</LIST>
<ID>data</ID>
</Select>
</Body>
</Envelope>
请建议。
编辑 1:堆栈跟踪:
[MissingMethodException: No parameterless constructor defined for this object.]
System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) +0
System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) +142
System.Activator.CreateInstance(Type type, Boolean nonPublic) +107
System.Activator.CreateInstance(Type type) +13
System.Web.Mvc.DefaultModelBinder.CreateModel(ControllerContext controllerContext, ModelBindingContext bindingContext, Type modelType) +271
[MissingMethodException: No parameterless constructor defined for this object. Object type 'System.Xml.Linq.XElement'.]
System.Web.Mvc.DefaultModelBinder.CreateModel(ControllerContext controllerContext, ModelBindingContext bindingContext, Type modelType) +345
System.Web.Mvc.DefaultModelBinder.BindComplexModel(ControllerContext controllerContext, ModelBindingContext bindingContext) +750
System.Web.Mvc.ControllerActionInvoker.GetParameterValue(ControllerContext controllerContext, ParameterDescriptor parameterDescriptor) +466
System.Web.Mvc.ControllerActionInvoker.GetParameterValues(ControllerContext controllerContext, ActionDescriptor actionDescriptor) +137
System.Web.Mvc.Async.<>c__DisplayClass3_1.<BeginInvokeAction>b__0(AsyncCallback asyncCallback, Object asyncState) +679
请求中的标头:
authorization:Bearer aQwkhBb6XKEb5ZDm8-Gs7HsnvE08jgiY9rSocEm8F0S4S1
Content-Type:text/xml
我还尝试了以下标题:
authorization:Bearer aQwkhBb6XKEb5ZDm8-Gs7HsnvE08jgiY9rSocEm8F0S4S1
Content-Type:text/json
但反应是一样的。
解决方案
推荐阅读
- css - 仅对 Woocmmerce 的小数应用 CSS
- python - ValueError:尝试使用 scapy + 代码创建 DNS 消息时解包的值太多(预期为 2)在 CMD 中使用时不返回任何内容
- gnuplot - 使用输入文件中的多个字段绘制“带脉冲”
- c++ - 设置 NULL 会导致滞后 [MAX_STRING_LENGTH] = {'\0'};
- c# - 未通过数据库验证生成 MVC 视图
- c# - C#如何*精确*将双精度转换为十进制?
- spring-boot - 是否可以在没有 RabbitAutoConfiguration.class 的情况下自动创建队列?AMQP
- jquery - 除了 prev() 之外,我如何使用多个 jquery 选择器?
- r - 破解 R Markdown 或 Bookdown 以包含出现在 html 或 docx 输出中的 LaTeX 环境?
- algorithm - 如何估计这个任务属于 NP 类?