Wpf 调用WCF服务时参数的函数转换未成功
我有一个具有此功能的WCF服务:Wpf 调用WCF服务时参数的函数转换未成功,wpf,list,wcf,type-conversion,Wpf,List,Wcf,Type Conversion,我有一个具有此功能的WCF服务: namespace PortfolioSerivce { [ServiceContract] public interface IService1 { [OperationContract] bool CreateOrders(List<OrderDTO> ListOrder); } } 在WPF中,我有一个函数,其中我希望将列表传递给WCF函数: internal boo
namespace PortfolioSerivce
{
[ServiceContract]
public interface IService1
{
[OperationContract]
bool CreateOrders(List<OrderDTO> ListOrder);
}
}
在WPF中,我有一个函数,其中我希望将列表传递给WCF函数:
internal bool RemoteCreateOrders(List<Position> securityMarketDTO)
{
List<OrderDTO> ListOrders = new List<OrderDTO>();
Tools.MyRemoteService.CreateOrders((List<OrderDTO>)ListOrders);
return true;
}
内部bool RemoteCreateOrders(列出securityMarketDTO)
{
List ListOrders=新列表();
Tools.MyRemoteService.CreateOrders((列表)ListOrders);
返回true;
}
当我编译时,我得到了这些错误:
与“PortfolioView.PortfolioService.Service1Client.CreateOrders(PortfolioView.PortfolioService.OrderDTO[])”匹配的最佳重载方法具有一些无效参数
无法从“System.Collections.Generic.List”转换为“PortfolioView.PortfolioService.OrderDTO[]”
这里的问题是什么,当我从我的应用程序发送一个OrderDTO
列表时,我在WCF中声明了一个OrderDTO
列表作为参数。我应该使用什么转换
提前感谢。从您的例外情况来看,您在传递列表时,Service1Client的方法CreateOrders需要OrderDTO[]类型的变量 请传递正确类型的变量,使用ListOrders.ToArray将列表转换为数组 或者,若您想通过列表,请在添加服务引用时让vs生成收集列表
使用vs添加服务引用时,您可以单击底部的advanced,然后配置集合类型。但是从我编写的代码
public bool CreateOrders(List ListOrder)
中,我没有定义表。我不明白;
[DataContract]
public class OrderDTO
{
[DataMember]
public int Id { get; set; }
[DataMember]
public char OrderType { get; set; }
[DataMember]
public float OrderedQty { get; set; }
[DataMember]
public float PreUNitCost { get; set; }
[DataMember]
public float PostUnitCost { get; set; }
[DataMember]
public float MarketPrice { get; set; }
[DataMember]
public float ClientId { get; set; }
[DataMember]
public float SecurityId { get; set; }
}
internal bool RemoteCreateOrders(List<Position> securityMarketDTO)
{
List<OrderDTO> ListOrders = new List<OrderDTO>();
Tools.MyRemoteService.CreateOrders((List<OrderDTO>)ListOrders);
return true;
}