C# Xamarin.带WCF的表单
通常我写一个带问题的小主题,但不是今天。我为“很多文字”提前道歉,但这个问题让我筋疲力尽 主要任务是创建Xamarin.Forms应用程序,并通过WCF组织与数据库的通信 Visual Studio 2015 pro,最新更新,Xamarin,最新更新 第一步 这是我作出决定的基础。我创建了本主题中指定的WCF服务。首先-不配置对IIS Express的远程访问 添加:使用Windows窗体应用程序测试的WCF服务。考试通过了 第二步 正如我在前面指出的那样-Xamarin.Forms,而不是该主题中的Xamarin.Android。以下是创建Xamarin.Forms项目的步骤: 新项目-跨平台-跨平台应用程序(Xamarin.Forms或原生)-空白应用程序(UI技术)-Xamarin.Forms,代码共享策略-PCL(可移植类库) 第三步 第一个问题:VS2015中Xamarin.Forms的默认模板包括与WCF不兼容的目标平台。这意味着当我们有这个目标平台时,我们不能向PCL添加服务引用。这个问题花了很多时间,我的解决方案是:C# Xamarin.带WCF的表单,c#,.net,wcf,xamarin.forms,C#,.net,Wcf,Xamarin.forms,通常我写一个带问题的小主题,但不是今天。我为“很多文字”提前道歉,但这个问题让我筋疲力尽 主要任务是创建Xamarin.Forms应用程序,并通过WCF组织与数据库的通信 Visual Studio 2015 pro,最新更新,Xamarin,最新更新 第一步 这是我作出决定的基础。我创建了本主题中指定的WCF服务。首先-不配置对IIS Express的远程访问 添加:使用Windows窗体应用程序测试的WCF服务。考试通过了 第二步 正如我在前面指出的那样-Xamarin.Forms,而不是该
- 从NuGet Xamarin.Forms中删除-重新启动VS-打开PCL属性-单击更改目标平台-删除Windows Phone和Silverlight-重新启动VS-添加Xamarin.Forms NuGet-我找到的最好的一个
- 将packages.config重命名为packages.config.BAK-对更改的平台执行相同的操作
public MainPage()
{
InitializeComponent();
BasicHttpBinding binding = CreateBasicHttp();
MyServiceClient client = new MyServiceClient(binding, new EndpointAddress("http://localhost:9607/MyService.svc"));
client.DoWorkCompleted += Client_DoWorkCompleted;
client.DoWorkAsync(10);
}
private void Client_DoWorkCompleted(object sender, DoWorkCompletedEventArgs e)
{
var result = e.Result;
}
private static BasicHttpBinding CreateBasicHttp()
{
BasicHttpBinding 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;
return binding;
}
第五步
运行服务。。。运行客户端。。。等待加薪工作完成。。。在e.Result中获取系统.Reflection.targetingException
任何人。。。请帮帮我。这个问题控制着我的生活。我睡不着,吃不下。。。我只是在想这个。。。问题
到我的DropBox获取源代码
固定的。主要问题:emulator的hocalhost不是主工作站的localhost。为本地网络创建访问解决了我的问题
WCF配置很复杂。我建议您创建一个单元测试(普通的C#应用程序,与Xamarin无关),并调用WCF服务以确保WCF服务配置正常。然后切换到Xamarin项目的疑难解答。编辑了我的帖子。WCF已在早期使用Windows窗体应用程序进行了测试。是否检查了InnerException值?无法访问它。出现在e中。结果刚刚被篡改的消息。可能在生成的服务客户端类中的某个地方。。。尚未测试。已检查是否存在异常。只需编辑我的帖子