【发布时间】:2012-04-28 23:56:13
【问题描述】:
我熟悉创建 WCF 客户端、调用标准方法、然后在完成后关闭或中止客户端的最佳实践,但我想知道客户端的异步方法。
我有一个管理器类,它有一些传递事件供消费类附加,以便检索异步调用的结果。例如:
internal sealed class CommController
{
public event GetClientIdEventHandler ClientIdReceived;
private readonly LocalCommSvcClient _localCommSvcClient = new LocalCommSvcClient();
public CommController()
{
_localCommSvcClient.GetClientIdCompleted += (o, e) => ClientIdReceived(o, e);
}
public void GetClientIdAsync()
{
_localCommSvcClient.GetClientIdAsync();
}
}
但我没有看到客户在哪里关闭和/或处置。我真的找不到太多关闭 WCF 客户端的最佳实践,因为它与异步使用有关。我应该把 .Close() 和/或 .Abort() 调用放在哪里?
【问题讨论】:
-
我认为它经历了一个标准的 REST 请求/响应周期(可能通过 HTTP),由于它是无状态的,因此无需“关闭”客户端,因为一开始并没有真正打开任何东西地方。尽管我在这方面可能大错特错,但我并没有乐于深入了解 WCF 的真正细节。
标签: c# .net wcf asynchronous