使用Xamarin表单使用异步的MoveNext错误

问题描述 投票:0回答:1

我有一个使用CodeIgniter后端和NuSoap的Xamarin Android表单项目。

我在Visual Studio中创建了一个用于测试的.NET核心项目,并向服务器添加了连接服务。创建了一个异步任务来从服务器中提取数据,所有这些都正常工作。

var client = new TbqService.ServicePortTypeClient();
var loginTask = Task.Run(() => client.logInAsync("user", "password"));
echoTask.Wait();
Console.WriteLine($"Login result {loginTask.Result}");

然后,我对Xamarin表单应用程序遵循相同的顺序,但遇到以下错误。我已经看到有关将SSL设置为TLS 1.2并删除bin / obj文件夹并重建的评论。都没有帮助。

{System.NullReferenceException: Object reference not set to an instance of an object.
 at MyThingApp.Models.DataConnect+<Login>d__13.MoveNext () [0x00023] in  
 D:\WebSites\TheMyThing_Projects\MyThingApp\MyThingApp\MyThingApp\Models\DataConnect.cs:31 }

两者的工作方式是否有所不同,我应该以不同的方式处理它们吗?

    public async Task<bool> Login(string email, string password)
    {
        try
        {
            var c = new TbqService.ServicePortTypeClient();
            var result = await c.logInAsync(email, password); // line 31 in error
            return result.Contains("true");
        }
        catch (Exception ex)
        {
            System.Diagnostics.Debug.WriteLine(ex);
        }

        return false;
    }
xamarin.forms codeigniter-3 nusoap
1个回答
0
投票

似乎结果可能返回null。因此,当您尝试访问结果中的内容时,它会崩溃。添加一个空检查,这将消除您的错误。

if (result != null)
    return result.Contains("true");
© www.soinside.com 2019 - 2024. All rights reserved.