首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将异步与Xamarin表单一起使用时出现MoveNext错误

将异步与Xamarin表单一起使用时出现MoveNext错误
EN

Stack Overflow用户
提问于 2018-10-26 09:43:44
回答 1查看 297关注 0票数 0

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

I visual studio我创建了一个用于测试的.NET核心项目,为服务器添加了连接的服务。创建了一个异步任务来从服务器拉取数据,这一切都工作正常。

代码语言:javascript
复制
var client = new TbqService.ServicePortTypeClient();
var loginTask = Task.Run(() => client.logInAsync("user", "password"));
echoTask.Wait();
Console.WriteLine($"Login result {loginTask.Result}");

然后,我对Xamarin forms应用程序执行了相同的顺序,但得到了以下错误。我看到了关于将SSL设置为TLS 1.2以及删除bin/obj文件夹和重建的评论。两者都没有帮助。

代码语言:javascript
复制
{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 }

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

代码语言:javascript
复制
    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;
    }
EN

回答 1

Stack Overflow用户

发布于 2019-10-05 06:15:19

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

代码语言:javascript
复制
if (result != null)
    return result.Contains("true");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53000302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档