【发布时间】:2015-05-12 03:28:21
【问题描述】:
我正在尝试提高 C# 作业的速度,我们称之为“WidgetProcessor”。在一次运行中,WidgetProcessor 将处理大约 5,000 个小部件,大约需要 12 小时才能完成(大约 8 秒/小部件)。
WidgetProcessor 引用 3 个不同的 Web 服务,并为每个处理的小部件多次调用它们。可以对“WidgetProcessor”程序进行各种性能/设计改进,但我想测试网络上的多个 Web 服务调用是否会导致作业运行缓慢。
我拥有三个 Web 服务中每一个的源代码(并且可以访问这些 Web 服务使用的所有资源),并且 我想知道是否有一种方法可以轻松使用 Web 服务接口在 WidgetProcessor 中通过引用 Web 服务项目本身(而不是通过网络调用 Web 服务)。 Web 服务是用 C# 实现的。
我会直接引用服务实现类,但我遇到的主要问题是 Web 服务总共有大约 100 个数据协定,而且面向公众的名称与实现类不同。
[DataContract(Name = "WidgetInfo")]
public class WidgetDataContract
{
// DataMembers
}
因此,直接引用实现意味着我将在 WidgetProcessor 中进行许多代码更改。相反,我想使用服务接口,这样代码更改可以保持在最低限度。
基本上,我希望 WidgetProcessor 解决方案中的服务看起来和行为都像 Web 服务,但不通过网络执行其操作。
这可能吗?
【问题讨论】:
标签: c# web-services wcf