Mar*_*coK 2 wcf xamarin.ios ios xamarin
我想使用Xamarin和WCF来使用公共Web服务.对于本演示,我将使用Xamarin.iOS.
这是我正在尝试使用的(公共)Web服务:
http://www.webservicex.net/globalweather.asmx?WSDL
Run Code Online (Sandbox Code Playgroud)
在Xamarin Studio中,我使用Web服务中的URL 添加Web引用.选定的Framework设置为Windows Communication Foundation(WCF).
现在,我使用以下代码连接服务:
var _client = new GlobalWeatherSoapClient();
_client.BeginGetWeather ("Berlin", "Germany", (ar) => {
var result = _client.EndGetWeather(ar);
}, null);
Run Code Online (Sandbox Code Playgroud)
执行此代码时,我得到了一个System.NullReferenceException
.这是问题,为什么它不正常?
最奇怪的部分:当我不使用WCF,但选择.NET 2.0 Web Services作为框架时,一切似乎都运行正常.
我看不出我的WCF代码有什么问题 - 根据文档,一切都应该正常.
我希望有人可以帮助我!提前致谢!
你没有关注这些文档.
从该页面引用:
要生成用于Xamarin.iOS项目的WCF服务的代理,请使用Windows上的Silverlight SDK附带的Microsoft SilverlightServiceModel代理生成工具(SLSvcUtil).此工具允许指定维护服务端点配置合规性所需的其他参数.
因此,首先需要在具有slsvcutil的Windows机器上创建代理.通过Xamarin Studio向项目添加WCF引用不起作用.它仅适用于.NET 2.0 Web服务,这就是该选项正常的原因.
第二件事,在使用slsvcutil在Windows上创建代理后,需要将其添加到项目中.
第三,你需要像这样初始化它,使用基本的http绑定(再次,来自上面链接的代码):
var binding = new BasicHttpBinding () {
Name= "basicHttpBinding",
MaxReceivedMessageSize = 67108864,
};
//...
client = new Service1Client (binding, new EndpointAddress ("http://192.168.1.100/Service1.svc"));
Run Code Online (Sandbox Code Playgroud)
建议:忘记iOS上的WCF.该文章包含有关客户端 - 服务器通信的其他方法的非常有用的信息.
归档时间: |
|
查看次数: |
5223 次 |
最近记录: |