1

我想使用这些<operation>Asnyc方法而不是Begin<operation>/End<operation>我的 WCF 服务客户端代理上的方法,因为我正在更新 WPF 控件并且需要确保它们是从 UI 线程更新的。我可以使用 Dispatcher 类为 UI 线程排队项目,但这不是我要问的......

我已经配置了服务引用来生成异步操作,但它只生成代理实现中的方法,而不是它的接口。该接口仅包含同步和Begin<operation>/End<operation>方法。

为什么这些方法不在接口中生成,有没有办法做到这一点,还是我必须创建派生接口才能手动添加它们?

4

2 回答 2

0

我最终像这样手动创建了自己的界面:

public interface IMyServiceProxy : IGeneratedServiceProxy
{
   void GetEntityAsync(GetEntityRequest request);
   void GetEntityAsync(GetEntityRequest request, object userState);
   event EventHandler<GetEntityCompletedEventArgs> GetEntityCompleted;
}

然后创建一个实现我的接口的派生类:

public class MyServiceProxy : GeneratedServiceProxy, IMyServiceProxy
{
}

让我知道是否有人找到更好的解决方法。

于 2010-04-30T08:23:33.877 回答
0

您的项目需要以 .NET Framework 3.5 为目标才能生成基于事件的代理。请参阅此处的“如何启用”部分。

于 2010-10-19T19:33:41.480 回答