【问题标题】:Function conversion of argument did not succeed when calling WCF service调用 WCF 服务时参数的函数转换不成功
【发布时间】:2019-05-27 23:36:44
【问题描述】:

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

namespace PortfolioSerivce
{
    [ServiceContract]
    public interface IService1
    {
         [OperationContract]
         bool CreateOrders(List<OrderDTO> ListOrder);
    }
}

这里是它的代码

    public bool CreateOrders(List<OrderDTO> ListOrder)
    {
        return true;
    }

OrderDTO 类定义如下:

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

在 WPF 中,我有一个函数,我想在其中将一个列表传递给 WCF 函数:

    internal bool RemoteCreateOrders(List<Position> securityMarketDTO)
    {
        List<OrderDTO> ListOrders = new List<OrderDTO>();
        Tools.MyRemoteService.CreateOrders((List<OrderDTO>)ListOrders);
        return true;
    }

编译时出现这些错误:

'PortfolioView.PortfolioService.Service1Client.CreateOrders(PortfolioView.PortfolioService.OrderDTO[])' 的最佳重载方法匹配有一些无效参数

无法从“System.Collections.Generic.List”转换为“PortfolioView.PortfolioService.OrderDTO[]”

这里有什么问题,因为我从我的应用程序发送了OrderDTO 的列表,并且在 WCF 中我声明了OrderDTO 的列表作为参数。我应该使用什么转换?

提前致谢。

【问题讨论】:

    标签: wpf list wcf type-conversion


    【解决方案1】:

    从你的异常来看,你 Service1Client 的 CreateOrders 方法需要一个 OrderDTO[] 类型的变量,而你传递 List。

    请传递正确类型的变量,使用 ListOrders.ToArray 将列表转换为数组。

    或者如果你想传递List,请在添加服务引用时让vs生成List供收集。

    使用vs添加服务引用时,可以点击底部的advanced,然后可以配置Collection type。

    【讨论】:

    • 但是从我写的代码public bool CreateOrders(List&lt;OrderDTO&gt; ListOrder) 所以我没有定义一个表。我不明白;
    猜你喜欢
    • 2015-03-22
    • 2015-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多