我正在开发一个通过WCF使用SOAP服务的项目。最初,我们使用生成的服务引用,因为它很容易上手。这提供了开箱即用的ChannelFactory
缓存和基于任务的异步方法,这显然是可取的。
我们最近切换到使用服务接口并实例化我们自己的ChannelFactory
。我们将ChannelFactory
视为单个对象来缓存它。在缓存ChannelFactory
时 - 我被告知ChannelFactory
可能会变坏,例如,如果其中一个频道出错。这是一个真正的问题吗?
我的第二个问题是关于使用基于任务的异步调用,例如使用服务引用时生成的异步调用。使用ChannelFactory<T>
时如何完成?我了解您可以使用T
对[OperationContract(AsyncPattern = true)]
上的方法进行注释,但这些方法会返回IAsyncResult
而不是Task
。
任何帮助都将不胜感激。