【问题标题】:Best approach for multiple WCF requests多个 WCF 请求的最佳方法
【发布时间】:2023-03-08 14:14:01
【问题描述】:

我有一个方法可以接收一个 productId 数组,并且我需要使用它们获取每个产品的日期。问题是该服务只能给我每个产品的日期。 我无法访问服务端......只有客户端。 有没有更好的方法来做下面的代码?

ChannelFactory<IService> channelFactory = null;
IService client = null;
List<DateTime> dates = new List<DateTime>();

using (channelFactory = new ChannelFactory<IService>("endpointName"))
{
    for (int i = 0; i < productIds.Length; i++)
    {
        client = channelFactory.CreateChannel();

        Request request = new Request();
        request.Id = productIds[i];

        Response response = client.execute(request);
        dates.Add(response.Date);
    }
}

【问题讨论】:

    标签: c# wcf .net-3.5


    【解决方案1】:

    看起来您不必在每次迭代时创建通道,只需在循环之前创建一次。您也可以尝试将流程并行化:svcutil 可以生成基于任务的异步操作,我相信 ChannelFactory 本身也有类似的东西。 但恐怕如果没有适当的服务器端支持,就不可能减少服务调用量。

    【讨论】:

    • 我认为基于任务的异步操作在 .net 3.5 中不可用
    • 是的,没错。我错过了 .net-3.5 标签。我认为 Begin*-End* 方法几乎可以做到这一点。
    猜你喜欢
    • 2013-03-20
    • 2011-03-03
    • 2018-02-24
    • 2021-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多