【问题标题】:Soap Service Model Binding failureSoap 服务模型绑定失败
【发布时间】:2021-02-22 04:04:23
【问题描述】:

我有一个 WCF 肥皂服务。有一个带有模型参数的方法

像这样:

public FirPrpsRes RegPrps(FirPrpsReq PrpsReq)

FirPrpsReq 模型有另一个模型的列表

public class FirPrpsReq
{
  public int id{get; set;}
  public List<FirPlcyInsrd> PlcyInsrd { get; set; }
}

当我从soapUI 调用这个方法时,FirPlcyInsrd 中的一些属性没有绑定; 他们都是null

属性名称与soapui中的模型相同且值正确

请帮忙!

更新

我在 SoapUi 请求中按字母顺序对属性进行排序,它正在工作 但是我们的客户没有这样发送请求,他们收到错误

为什么按字母顺序排序很重要?

【问题讨论】:

  • 当您以多态方式使用集合代替非集合类型时,必须将它们添加到已知类型。例如,如果您声明 Object 类型的数据成员并使用它来发送 ArrayList 的实例,则将 ArrayList 添加到已知类型。更多关于“集合和已知类型”的信息,可以参考这个链接:docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/…

标签: c# wcf serialization soap model-binding


【解决方案1】:

您需要通过从 System.Runtime.Serialization 添加一个属性来序列化您的模型,以便将您的模型公开到 wcf 服务中。

using System.Runtime.Serialization
[DataContract]
public class FirPrpsReq
{
  [DataMember]
  public int id{get; set;}
  [DataMember]
  public List<FirPlcyInsrd> PlcyInsrd { get; set; }
}

【讨论】:

  • 感谢您的关注@edisket。我测试了你的解决方案,但有任何改变。
  • @Ali Maleki,您是否使用 System.Runtime.Serialization 序列化类 FirPlcyInsrd
  • 是的,我愿意。*FirPlcyInsrd 和所有孩子
猜你喜欢
  • 2015-11-06
  • 1970-01-01
  • 1970-01-01
  • 2020-04-23
  • 1970-01-01
  • 1970-01-01
  • 2014-05-08
  • 2012-03-29
  • 2020-03-23
相关资源
最近更新 更多