我在xamarin中全新。
我使用Visual Studio 2017社区,我编写了一个非常简单的代码:我想连接到基本的WCF服务。
服务链接:
http://services.adserviceitalia.it/Service1.svc
(方法GetHello,输入字符串和返回字符串......非常基本的方法)
我读了很多样本......我添加了对服务的引用,生成了代理类...... ok !!
public partial class MainPage : ContentPage
{
private wcfs.Service1Client ws;
public MainPage()
{
InitializeComponent();
var endpoint = new EndpointAddress("http://services.adserviceitalia.it/Service1.svc");
var binding = new BasicHttpBinding
{
Name = "basicHttpBinding",
MaxBufferSize = 2147483647,
MaxReceivedMessageSize = 2147483647
};
TimeSpan timeout = new TimeSpan(0, 0, 30);
binding.SendTimeout = timeout;
binding.OpenTimeout = timeout;
binding.ReceiveTimeout = timeout;
ws = new wcfs.Service1Client(binding,endpoint);
ws.GetHelloCompleted += Handle_HelloWorldCompleted;
}
private void Button_Clicked(object sender, EventArgs e)
{
ws.GetHelloAsync("Mark");
}
private void Handle_HelloWorldCompleted(object sender, wcfs.GetHelloCompletedEventArgs args)
{
label1.Text = args.Result;
}
}
}
它适用于UWP调试......
Connection with WCF... Hello World working in UWP
我在Android中遇到了未处理的异常......
在Android Manifest中,所有权限都被删除。 Android模拟器已连接到互联网......
非常感谢每一个帮助!!提前谢谢......请原谅我的英语。
答案 0 :(得分:0)
...行动
首先:感谢所有人!!
在我的日志中我读到了这个: 04-27 14:11:30.106 E / mono-rt(5308):[ERROR]致命不受限制异常:Android.Util.AndroidRuntimeException:只有创建视图层次结构的原始线程才能触及其视图。
似乎问题是我尝试使用WCF respose直接在Handle_HelloWorldCompleted中更新接口:
label1.Text = args.Result;
...在我用这种方式修改代码:
//label1.Text = args.Result;
System.Diagnostics.Debug.WriteLine(args.Result);
我可以看到arg.Result由WCF响应填充" Hola Mark" (ergo:与服务的连接工作!!)。
请注意我在Android调试中只有这种行为。
我如何更新该标签1 ??