双项目Prism SL / WPF共享服务引用同步调用

时间:2014-08-28 09:56:48

标签: wpf wcf prism silverlight-5.0 synchronous

我在WPF .NET 4中使用MVVMLight框架,SOAP WebServices,ENtityFramework开发了一个大型应用程序2年... 我目前的任务是在全网上开发相同的应用程序。经过多次搜索,我终于决定使用Silverlight 5和Prism并行开发这两个应用程序。我的解决方案由桌面MVVMLight项目,silverlight项目,桌面模型项目和sl模型项目组成。 ViewModel和Model是共享的(带链接)。 Silverlight模型文件链接到桌面模型文件并为SL5构建。 ViewModel的行为相同。只有视图被编码,因为它很难分享。现在一切顺利,绑定和datacontext都可以。第五个项目是SOAP WebService,由Silverlight或Desktop项目启动。

问题在于SeviceReference。我被迫使用两种不同的ServiceReferences,因为我没有成功分享它。有办法吗? Silverlight Web服务调用只能是异步的,而原始的biq wpf应用程序有时会使用同步调用(表单验证等...)。异步调用(各种刷新)是同步进行的,但在BackgroundWorkers中,因此它仍然是应用程序的同步,nopb。 (你还跟着我吗?)。

共享Web服务调用在ViewModel中以相同的方式(共享代码)进行,并且在公共类中与以下内容分开:

public TResult WebServiceClientCaller(some args)
{
    #if SILVERLIGHT
         result = SilverlightWebServiceClient.MyMethod(some args);
    #else
         result = DesktopWebServiceClient.MyMethod(some args);

    return result;
}

问题是我无法从" result = SilverlightWebServiceClient接收数据。"就像 " result = DesktopWebServiceClient。"。

我进入了3 4 4天,我不再计数:)。我尝试了几个例子:

XmlHttpRequest

Daniel Vaughan,

还有更多......

我尝试使用带有异步/等待关键字的CTP和VS2012在VS2010上工作,但它并不令人满意。

有人可以帮我吗?如果我必须更具体,请告诉我。

0 个答案:

没有答案