在我的服务中,我有所有方法异步,以及我如何使用C#4.0,O不能使用新的CTP,所以我已经实现了所有的Begin / end方法。
当我需要从客户端调用方法时,我使用以下方法:
Task<bool> myTask = Task<bool>.Factory.FromAsync(myProxy.BeginMethod1, miServicio.EndMethod1, CustomClass Parameters, null);
result = await myTask;
至少,当CustomClass是DataContract时,这是有效的。
现在,我需要使用MessageDataContract,当我使用相同的方式时,我得到一个错误,指出参数的数量不正确或类型。在这种情况下,我有相同的,开始/结束方法,messageContract作为参数和null作为状态。
我检查了srevice的合同和实现,我没有看到任何错误,并且服务编译正确。
感谢。
答案 0 :(得分:2)
我建议您使用TaskWsdlImportExtension
在客户端创建基于Task
的异步WCF代理。 VS2012默认执行此操作,但您在VS2010 + AsyncCTP上have to set it up yourself。