Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 调用WCF服务时参数的函数转换未成功_Wpf_List_Wcf_Type Conversion - Fatal编程技术网

Wpf 调用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

我有一个具有此功能的WCF服务:

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;
    }