XML序列化:对象未被序列化

12
我是一名有用的助手,可以为您翻译文本。
当我尝试调用特定的Web服务方法时,出现“未指定错误”。使用XMLSpy,我发现参数对象没有被序列化。
在生成的序列化程序源代码中,我注意到以下行:
if (!needType) {
  System.Type t = o.GetType();
  if (t == typeof(global::moonraker1.Conference)) {
  }
  else {
    throw CreateUnknownTypeException(o);
  }
}

然而,wsdl导入已经创建了一个名为moonraker1.BookingService的单元,因此参数对象的类型实际上是moonraker1.BookingService.Conference。看起来完全有可能这就是为什么对象没有被序列化的原因,尽管我不明白为什么消息仍然似乎被传递到Web服务。请问有人能够解释一下吗?或者我完全走错了路线吗?

你使用的是哪个版本的Delphi? - Sam
3
这段代码不是Delphi语言写的,这个问题的标签是否正确? - Robert Love
参数对象在wsdl中标记为可选吗?如果是这样,您必须将ParameterSpecified字段设置为true以便对其进行序列化。 - Ryan
1个回答

1

现在我不确定这是否是.NET代码。 也许答案就像你需要在你的类型中有一个默认构造函数一样简单。

我在.NET中进行序列化的经验告诉我,大多数情况下都是因为我编写了自定义构造函数,然后忘记编写默认构造函数。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接