xamarin PCL消耗WCF:Android

时间:2017-04-27 12:43:13

标签: c# wcf xamarin.android xamarin.forms visual-studio-2017

我在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模拟器已连接到互联网......

非常感谢每一个帮助!!提前谢谢......请原谅我的英语。

1 个答案:

答案 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 ??