Ошибка CS0433: тип "JsonValue" существует в "System.Json, версия =2.0.5.0" и "Xamarin.Auth" (CS0433)

Я пытаюсь создать приложение в Visual Studio для Mac с Xamarin.Forms. В этом приложении я использую Xamarin.Auth для хранения некоторых пользовательских данных. Теперь я хочу добавить соединение с API с помощью JSON. Я добавил System.Json и добавил свой код. Но проблема в том, что я получаю ошибку:

Ошибка CS0433: тип "JsonValue" существует как в "System.Json, версия =2.0.5.0", так и в "Xamarin.Auth" (CS0433).

Я удалил и добавил Xamarin.Auth в проект. Я удалил папки OBJ и BIN, когда Visual Studio была закрыта, запустил VS, очистил решение, пересобрал решение и попытался снова, но ошибка все та же. Я не могу понять, в чем проблема.

Я не совсем уверен, поможет ли это, но вот один фрагмент кода, в котором происходит ошибка. Я знаю, что функция не возвращает ничего в данный момент, но я просто пытаюсь выяснить, как выполнять вызовы JSON/API и получить код для компиляции без ошибок:

public class DBhandler
{
    public async Task<List<Object>> GetItemsFromApiASync(Type callingClass,    string apiDir, string apiFile)
    {
        HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(new Uri(ApiAddress + apiDir + apiFile));
        request.ContentType = "application/json";
        request.Method = "Get";

        using (WebResponse response = await request.GetResponseAsync())
        {
            using (Stream stream = response.GetResponseStream())
            {
                System.Json.JsonValue jsonDoc = await Task.Run(() => System.Json.JsonObject.Load(stream));
                object[] parametersArray = new object[] { jsonDoc };
                MethodInfo methodInfo = callingClass.GetMethod("ConvertApiResultToObject");
                methodInfo.Invoke(methodInfo, parametersArray);
            }
        }

        return null;
    }

2 ответа

Решение

Внезапно я вспомнил, как решить эту проблему: мне помогли комментарии к вопросу (спасибо @Tcraft, @DiegoRafaelSouza). я добавил System.Json к ссылкам на разных платформах (я использую общий проект, так далее project.IOS а также project.Android). Щелкните правой кнопкой мыши на properties и помечены Local Copy, Затем я добавил псевдоним SystemJsonAlias, И использовал using SystemJsonAlias = System.Json во всех моих файлах.cs, где это необходимо.

Возможно, это помогает кому-то еще.

Я столкнулся с той же проблемой при создании проекта Android Xamarin, который ссылался на Xamarin.Auth и несколько других пакетов NuGet и компонента Facebook Xamarin. Я смог просто удалить System.Json из ссылок моего проекта, а затем мой проект смог скомпилироваться и запустить.

Другие вопросы по тегам