WCF <operation>代理接口</operation>中未生成异步方法

时间:2010-03-30 15:10:29

标签: c# wcf asynchronous wcf-proxy

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

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

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

2 个答案:

答案 0 :(得分:0)

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

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

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

public class MyServiceProxy : GeneratedServiceProxy, IMyServiceProxy
{
}

如果有人找到更好的解决方法,请告诉我。

答案 1 :(得分:0)

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