我确实读过这是因为缺乏对Netcore 2.1的支持
myItemsList = await App.MobileServiceAndroid.GetTable<MyTable>().ToListAsync();
目前在Android上不起作用,并且有一种变通方法可以在MobileServiceClient的构造函数中传递HttpClientHandler(),所以我做到了这一点:
public static MobileServiceClient MobileServiceAndroid =
new MobileServiceClient(AppConstants.AZURE_PRODUCTION_WEB_API_URL, new HttpClientHandler());
但是这是不完整的,它仍然无法正常工作,我到底要做什么才能完成这项工作,任何指导都是值得赞赏的。
public static MobileServiceClient MobileServiceAndroid =
new MobileServiceClient(AppConstants.AZURE_PRODUCTION_WEB_API_URL, new AndroidClientHandler());
很可能您在使用using语句时可能会遇到问题,因为您将必须按照here所示的步骤进行操作,或者在以下步骤中为您自定义:将Xamarin Forms项目添加到所有项目中。
在Core项目中创建接口
ICustomClientHandler
using System;
using System.Net.Http;
namespace Test
{
public interface ICustomClientHandler
{
HttpClientHandler GetHandler();
}
}
然后在Droid项目中创建一个CustomClientHandler
,它将成为依赖项服务的Android部分,它将帮助您检索本机AndroidClientHandler。>
using System.Net.Http;
using Xamarin.Android.Net;
using System.Runtime.CompilerServices;
using Xamarin.Forms;
using Test;
[assembly: Xamarin.Forms.Dependency(typeof(Test.Droid.CustomClientHandler))]
namespace Test.Droid
{
public class CustomClientHandler : ICustomClientHandler
{
public HttpClientHandler GetHandler()
{
return new AndroidClientHandler();
}
}
}
也以类似方式实施iOS版本,但改为return new HttpClientHandler();
var clientHandler = DependencyService.Get<ICustomClientHandler>().GetHandler();
public static MobileServiceClient MobileServiceAndroid =
new MobileServiceClient(AppConstants.AZURE_PRODUCTION_WEB_API_URL, clientHandler);