我正在尝试将WCF Post调用中的List作为参数传递。以下是我的代码。
TrackingNumbers.cs
[KnownType(typeof(List<string>))]
[DataContract]
public class TrackingNumbers
{
[DataMember]
public List<object> TrackingNumberList { get; set; }
}
IService.cs
[OperationContract]
[WebInvoke(Method = "POST",
RequestFormat = WebMessageFormat.Xml,
ResponseFormat = WebMessageFormat.Xml,
BodyStyle = WebMessageBodyStyle.Bare,
UriTemplate = "v1/xml/GetMultipleShipmentDetails/")]
Shipments[] XMLMultipleData(TrackingNumbers trackingNumbers);
现在当我从fiddler
传递以下XML时<TrackingNumbers xmlns="http://schemas.datacontract.org/2004/07/Chhotu.Web.Partner.API">
<TrackingNumberList>10000008871</TrackingNumberList>
<TrackingNumberList>10000008864</TrackingNumberList>
<TrackingNumberList>10000008858</TrackingNumberList>
</TrackingNumbers>
未从调试器调用XMLMultipleData方法。请说明我做错了什么。
答案 0 :(得分:0)
我发现代码存在一些问题:
你确定你是附属的吗?您可以尝试使用Debugger.Break()强制附加调试器;在你的代码中处于有利位置。
答案 1 :(得分:0)
我建议你尝试改变这一行
Shipments[] XMLMultipleData(TrackingNumbers trackingNumbers);
带
Shipments[] XMLMultipleData(TrackingNumbers[] trackingNumbers);
您的 [DataContract] 为
[DataContract]
public class TrackingNumbers
{
[DataMember]
public int TrackingNumber{ get; set; }
}
另外!尝试删除KnownType(typeof(List<string>))]
谢谢!