3
我熟悉创建WCF客户端,调用标准方法,然后在完成时关闭或中止客户端的最佳做法,但我想知道有关客户端的异步方法。为异步方法创建和关闭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的真正细节。 – 2012-04-17 16:10:24