错误CS0433:类型' JsonValue'存在于System.Json,Version = 2.0.5.0'和' Xamarin.Auth' (CS0433)

时间:2017-11-06 23:14:01

标签: c# json xamarin.forms xamarin.auth system.json

我尝试使用Xamarin.Forms在Visual Studio for Mac中创建应用程序。在这个应用程序中,我使用Xamarin.Auth存储一些用户详细信息。现在我想通过使用JSON添加与API的连接。我添加了System.Json并添加了我的代码。但问题是我得到了错误:

  

错误CS0433:类型' JsonValue'存在于' System.Json中,   版本= 2.0.5.0'和' Xamarin.Auth' (CS0433)。

我删除并将Xamarin.Auth添加到项目中。当visual studio关闭时,我删除了OBJ和BIN文件夹,启动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 个答案:

答案 0 :(得分:2)

我在创建引用Xamarin.Auth和其他一些NuGet包以及Facebook Xamarin组件的Xamarin Android项目时遇到了同样的问题。我能够从项目的引用中删除System.Json,然后我的项目就可以编译并运行了。

答案 1 :(得分:1)

突然间,我确实记得如何解决这个问题:我对这个问题的评论有所帮助(感谢@Tcraft,@ DiegoRafaelSouza)。我在不同平台上的引用中添加了System.Json(我使用的是共享项目,依此类推project.IOSproject.Android)。右键点击properties并勾选Local Copy。然后我添加了别名SystemJsonAlias。并在需要的所有.cs文件中使用using SystemJsonAlias = System.Json

也许这有助于其他人。