Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Xamarin表单中的WCF服务_Wcf_Xamarin_Xamarin.forms_Xamarin.android - Fatal编程技术网

使用Xamarin表单中的WCF服务

使用Xamarin表单中的WCF服务,wcf,xamarin,xamarin.forms,xamarin.android,Wcf,Xamarin,Xamarin.forms,Xamarin.android,我可以将xamarin中的WCF服务与.NETFramework类库文件集成。 WCF-在.net Framework 4.5中开发 Xamarin-在.NETCore2.2中开发 在这里,我无法使用用.net framework创建的WCF服务。但我可以使用创建Asp.Net项目时使用相同.Net framework版本的服务 在xamarin中消费它需要做些什么 使用ASP.net使用WCF时没有问题,ASP.net是在同一个框架中创建的。但无法在Xamarin中消费。。。下面是代码 pub

我可以将xamarin中的WCF服务与.NETFramework类库文件集成。 WCF-在.net Framework 4.5中开发 Xamarin-在.NETCore2.2中开发

在这里,我无法使用用.net framework创建的WCF服务。但我可以使用创建Asp.Net项目时使用相同.Net framework版本的服务


在xamarin中消费它需要做些什么

使用ASP.net使用WCF时没有问题,ASP.net是在同一个框架中创建的。但无法在Xamarin中消费。。。下面是代码

public class Class1
{
    public UserInfo GetUser(string username, string password)
    {
        WSHttpBinding binding = new WSHttpBinding();
        TimeSpan span = new TimeSpan(0, 3, 0);

        binding.Name = "WSHttpBinding_IService";
        binding.CloseTimeout = span;
        binding.OpenTimeout = span;
        binding.ReceiveTimeout = span;
        binding.SendTimeout = span;
        binding.AllowCookies = false;
        binding.BypassProxyOnLocal = false;
        binding.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard;
        // binding.MaxBufferSize = 65536;
        binding.MaxBufferPoolSize = 524288;
        binding.MaxReceivedMessageSize = 65536;
        binding.MessageEncoding = WSMessageEncoding.Text;
        binding.TextEncoding = Encoding.UTF8;
        //binding.TransferMode = TransferMode.Buffered;
        binding.UseDefaultWebProxy = true;
        binding.ReaderQuotas = new XmlDictionaryReaderQuotas();
        binding.ReaderQuotas.MaxDepth = 32;
        binding.ReaderQuotas.MaxStringContentLength = 8192;
        binding.ReaderQuotas.MaxArrayLength = 16384;
        binding.ReaderQuotas.MaxBytesPerRead = 4096;
        binding.ReaderQuotas.MaxNameTableCharCount = 16384;
        binding.Security.Mode = SecurityMode.TransportWithMessageCredential;
        binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.None;
        binding.Security.Transport.ProxyCredentialType = HttpProxyCredentialType.None;
        binding.Security.Transport.Realm = string.Empty;
        binding.Security.Message.ClientCredentialType = MessageCredentialType.UserName;
        binding.Security.Message.AlgorithmSuite = SecurityAlgorithmSuite.Default;

        ICFService.ServiceClient client = new ServiceClient(binding, new EndpointAddress("..../Service.svc"));
        client.ClientCredentials.UserName.UserName = username;
        client.ClientCredentials.UserName.Password = password;

        return client.CheckUser(new UserRQ() { UserName = username, Password = password });
    }
}
Xamarin按钮点击

        try
        {
            APIServiceLibrary.Class1 api = new APIServiceLibrary.Class1();
            var user = api.GetUser(Entry_Username.Text, Entry_Password.Text);
            if (user != null)
            {

            }
        }
        catch (Exception ex)
        {
            throw ex;
        }            

到目前为止,你在Xamarin尝试了什么?WCF服务只是http或tcp端点。不是从移动设备直接调用WCF服务的最大粉丝!您可能想添加一个Web API层或其他东西