【发布时间】:2009-10-24 04:06:50
【问题描述】:
我有一个与 WCF 服务器通信的 WCF 客户端 (C#)。该客户端正在异步进行调用。我想知道以下是好主意还是坏主意:
从我的 WCF 客户端调用异步操作时,我将对象 asyncState 变量设置为代理对象。在我的回调函数中,我从 AsyncState 值中提取代理对象并在其上调用 .EndFunction。
例子:
public void Login()
{
Client client = CreateWCFProxy();
client.BeginLogin(user, pass, OnLoginCompleted, client);
}
public void OnLoginCompleted(IAsyncResult result)
{
Client client = result.AsyncState as Client;
LoginResult loginResult = client.EndLogin(result);
}
我可以将客户端存储为类成员,但如果我同时进行许多异步调用,可能会变得复杂。 (例如,如果代理在我执行一个异步调用时死亡,我需要创建一个新代理。但我仍然需要旧代理才能在其他未完成的异步调用上调用 .EndFunction。
【问题讨论】:
标签: wcf proxy asynchronous