我有一个接收productIds数组的方法,我需要为每个方法获取一个日期。问题是该服务只能给我一个每个产品的日期。 我无法访问服务端...只有客户端。 是否有更好的方法来执行下面的代码?
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);
}
}
答案 0 :(得分:2)
看起来你不必在每次迭代时创建通道,只需在循环之前创建一次。您也可以尝试并行化流程:svcutil可以生成基于任务的异步操作,我相信在ChannelFactory本身也有类似的东西。 但是,如果没有适当的服务器端支持,我担心无法减少服务电话数量。