如何在.netstandard中使用Wama服务与Xamarin.Forms项目?

vis*_*arg 6 wcf xamarin xamarin.forms .net-standard

我用.netstandard 2.0创建了一个Xamarin.Forms项目作为PCL项目.我正在尝试在该项目中使用WCF服务.我已经为WCF服务添加了连接服务.当我试图调用服务中提供的任何方法时,它会给出如下错误:

System.ServiceModel.FaultException`1 [[System.ServiceModel.ExceptionDetail,System.ServiceModel,Version = 2.0.5.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35]]:反序列化操作'GetData'的请求消息体时出错.OperationFormatter遇到无效的Message正文.预计会找到名为"GetData"的节点类型"Element"和名称空间" http://tempuri.org/ ".找到名为"GetDataAsync"的节点类型"Element"和名称空间" http://tempuri.org/ "

我也尝试将.netstandard版本更改为旧版本,但它也会出现同样的错误.

Bre*_*ski 6

目前,Xamarin应用程序与WCF Web服务引用连接服务提供程序为.NET标准项目生成的基于任务的异步WCF代理方法不兼容(bugzilla.xamarin.com 错误51959).

生成较旧,兼容的WCF代理方法的一种方法是使用Developer Command Prompt中SvcUtil.exe/async/tcv:Version35开关运行.这将生成同步代理方法,开始/结束样式异步编程模型(APM)回调代理方法和基于事件的代理方法,所有这些方法都与Xamarin应用程序兼容.

(注意:如果省略/async开关,SvcUtil.exe将生成较新的,不兼容的基于任务的代理方法.)