После проверки параметров сохранения токена JWT я выбрал безопасное хранилище Xamarin.Essentials.
Проблема в том, что мое приложение всегда ломается при попытке сохранить токен в хранилище со следующей ошибкой:
«Исключение System.AggregateException было сгенерировано»
Ниже приведены подробности:
«Xamarin.Essentials.NotImplementedInReferenceAssemblyException
Эта функция не реализована в переносной версииэтой сборки. Вы должны ссылаться на пакет NuGet из вашего основного проекта приложения, чтобы ссылаться на реализацию, специфичную для платформы. "
Это явно означает, что что-то пошло не так в установке пакета nuget, поэтому я:
- Деинсталлировал и переустанавливал пакет xamarin.essentials.
- Обновлен. Не соответствует стандарту 2.0, думая, что 1.6 не совместим.
- Проверено, есть ли ссылка на пакетв файле csproj.
Итак, ничего.
На данный момент у меня есть TokenStorageController со следующими строками кода:
public bool SaveToken(string token)
{
if(token != null)
{
Preferences.Set(key, token);
if(Preferences.ContainsKey(key))
{
return true;
}
}
return false;
}
Класс RestService, из которого вызывается контроллер, выглядит так:
//await SecureStorage.SetAsync("oauth_token", "booommmmmm"); // changed to this simply to check if my controller was the problem
TokenStorageController tokenStorage = new TokenStorageController();
await tokenStorage.SaveToken("boommmmm"); // where I get an error
И вот точная строка, где происходит ошибка:
var loginTask = Task.Run(() => restService.LoginAsync(user)).Result;
Если решений нет, я удалю все пакеты и переустановлю их все.ПО ОДНОМУ!Клянусь, я сделаю это!И если решений вообще не будет, я буду хранить токен в SQL, так как у меня уже есть контроллер для этого.
Я - Xamarin и C # noob, так что терпите меня, пожалуйста.
К вашему сведению: я использую клиент MacOS для тестирования, поскольку причина может заключаться в том, что SecureStorage не работает для приложений MacOS.
Спасибо!