当前位置: 首页 > 编程语言 > C#

分享_17

时间:2023-04-10 13:11:21 C#

在Xamarin跨平台应用程序中使用WCF服务在Xamarin跨平台应用程序中使用WCF服务我创建了一个WCF服务,它从SQL数据库中检索数据,并且可以将数据更新和修改到SQL数据库中。我正在尝试从xamarinforandroid和xamarinforiOS调用WCF方法。我搜索了一个示例,如何通过适用于Android的xamarin和适用于iOS的xamarin从WCF服务调用PUT和POST方法,但没有成功。我在下面添加了WCF代码以供参考。...甚至创建了一个WebAPI,但是使用WebAPI的所有示例和教程都是关于如何调用GET方法的。我没有看到任何参考文档显示如何通过跨平台从WCF或Webapi调用PUT或Post方法。我通过Fiddler测试了WCF服务,它工作正常。下一步是什么..我已经使用xamarin文档中提到的SlsvcUtil.exe为此Web服务创建了一个代理。有人为xamarin.Android发布了一个示例,该示例将从wcf服务下方调用更新或删除方法。正在寻找帮助。服务包含webHttp绑定。WCFService1.svc.cs使用系统;使用System.Collections.Generic;使用System.Linq;使用System.Runtime.Serialization;使用系统服务模型;使用System.ServiceModel.Web;使用系统文本;publicclassService1:IService1{publicListGetDeptsList(){using(DeptDBEntitiesentities=newDeptDBEntities()){returnentities.Depts.ToList();}}publicDeptGetDeptByID(stringno){try{intdeptId=Convert.ToInt32(no);使用(DeptDBEntitiesentities=newDeptDBEntities()){returnentities.Depts.SingleOrDefault(dept=>dept.no==deptId);}}catch{thrownewFaultException("出了点问题");}}publicvoidAddDept(stringname){using(DeptDBEntitiesentities=newDeptDBEntities()){Deptdept=newDept{name=name};entities.Depts.Add(部门);entities.SaveChanges();}}publicvoidUpdateDept(stringno,stringname){try{intdeptId=Convert.ToInt32(no);使用(DeptDBEntities实体=newDeptDBEntities()){部门dept=entities.Depts.SingleOrDefault(b=>b.no==deptId);部门名称=姓名;entities.SaveChanges();}}catch(Exceptione){thrownewFaultException(e.Message);}}publicvoidDeleteDept(stringno){try{intdeptId=Convert.ToInt32(no);使用(DeptAppDBEntitiesentities=newDeptAppDBEntities()){Deptdept=entities.Depts.SingleOrDefault(b=>b.no==deptId);entities.Depts.Remove(部门);entities.SaveChanges();}}catch{thrownewFaultException("出了点问题");}}}web.config中Main.axmlfor这是一个简单的代码片段,可使用指南://首先在类级别,为客户端创建一个私有变量。私人Service1Client_client;私人按钮_addButon;私人TextView_txtDeptName;//在OnCreate()方法中初始化_client。protectedoverridevoidOnCreate(Bundlebundle){base.OnCreate(bundle);var端点=新EndpointAddress("http:///Service1.svc");varbinding=newBasicHttpBinding{Name="basicHttpBinding",MaxBufferSize=2147483647,MaxReceivedMessageSize=2147483647};TimeSpan超时=newTimeSpan(0,0,30);绑定.SendTimeout=超时;绑定.OpenTimeout=超时;绑定.ReceiveTimeout=超时;_client=newService1Client(绑定,端点);_client.AddDeptCompleted+=ClientAddDeptCompleted;_addButton=FindViewById(Android.Resources.Id.Add);_addbutton.Click+=AddButton_Clicked;_txtDeptName=FindViewbyId(Android.Resources.Id.Name);}//然后在事件处理程序中,做类似这样的事情}//处理请求完成事件。privatevoidClientAddDeptCompleted(objectsender,AddDeptCompletedEventArgsaddDeptCompletedEventArgs){//TODO:带有请求已完成通知的内容。}您应该能够点击其他按钮和服务调用的类如果我打错了字,我深表歉意。我将从Xamarin网站上的一些内存和一些WCF说明开始。首先,您必须将服务添加到项目中。您可以使用以下命令执行此操作:CdC:\ProgramFiles(x86)\MicrosoftSDKs\Silverlightv5.0\Tools\SlSvcUtil.exehttp://localhost:2323/HisDashboardService/ProfilerService.svc/目录:"C:文件夹"然后添加到创建的工程文件中要使用添加的服务,必须按照下面的流程很有用,需要了解更多C#学习教程,希望大家付费更多关注—publicclassServiceAccessor{staticstringserviceUrl="http://172.16.12.17:7698/HisDashboardService/";publicstaticreadonlyEndpointAddressProfilerServiceEndPoint=newEndpointAddress(serviceUrl+"ProfilerService.svc");私有ProfilerServiceClient_profilerServiceClient;私人静态ServiceAccessor_instanceServiceAccessor;publicstaticServiceAccessorInstance{get{return_instanceServiceAccessor??(_instanceServiceAccessor=newServiceAccessor());}}ServiceAccessor(){InitializeServiceClientialize();(){BasicHttpBinding绑定=CreateBasicHttp();#regionProfilerService_profilerServiceClient=newProfilerServiceClient(binding,ProfilerServiceEndPoint);#endregionProfilerService}privatestaticBasicHttpBindingCreateBasicHttp(){BasicHttpBindingbinding=newBasicHttpBinding{Name="basicHttpBinding",MaxBufferSize=2147483647,MaxReceivedMessageSize=2147483647};TimeSpan超时=newTimeSpan(1,0,0);绑定.SendTimeout=超时;绑定.OpenTimeout=超时;绑定.ReceiveTimeout=超时;返回绑定;转载请注明出处: