JsonConvert存在于Newtonsoft和System.Net.Http.Formatting Visual Studio 2017 for Mac中

use*_*232 9 msbuild macos json visual-studio-2017

我有一个项目,我一直在使用Xamarin的MonoDevelop.

我一直在使用Newtonsoft的Json nuget包.

我刚刚下载了Visual Studio 2017 for Mac.

我尝试在VS2017Mac中构建我的项目并收到以下错误:

error CS0433: The type 'JsonConvert' exists in both 'Newtonsoft.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' and 'System.Net.Http.Formatting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
Run Code Online (Sandbox Code Playgroud)

我以为我应该能够通过添加Newtonsoft.Json来解决这个问题.到JsonConvert的前面,但那不起作用.

如果可能的话,我不想删除Newtonsoft的实现,因为我认为他们的库仍然有更多的功能.还有另一种解决方法吗?为什么没有添加完整的装配参考工作?

wei*_*eir 5

  1. 在项目的 Newtonsoft.Json 引用的 Properties 窗口中,将 Aliases 的值从 更改globalglobal, foo

  2. extern alias foo;作为使用 Newtonsoft.Json 的任何类的第一行插入。

  3. 会员资格foo.。例子:foo.Newtonsoft.Json.JsonConvert.SerializeObject(someObject)}


Dav*_*ers 5

我有以下错误消息,但在 C# 中有另一个库(Ranet):

错误 CS0433 “Microsoft.AnalysisServices.Tabular.Json, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91”和“Newtonsoft.Json, Version=11.0.0.0, PublicKey CultureToken=neutral”中都存在“JsonConvert”类型=30ad4fe6b2a6aeed'

我使用别名解决了它,但我想提供更多细节,因为我努力使用这些答案和其他答案中的说明来实现。我是这样做的:

  1. 在解决方案资源管理器中,右键单击“Newtonsoft.json”,在别名字段中添加“,Newton”,它应该如下所示:

在此处输入图片说明

  1. 将以下代码添加到文件的第一行(在所有 using 语句之前):
extern alias Newton;
Run Code Online (Sandbox Code Playgroud)
  1. 在 using 语句的末尾添加以下引用:
using NewtonReference = Newton::Newtonsoft.Json;
Run Code Online (Sandbox Code Playgroud)
  1. 现在您可以使用以下代码调用 Newtonsoft 方法:
NewtonReference.JsonConvert.DeserializeObject<string>("");
Run Code Online (Sandbox Code Playgroud)
  1. 最后一个例子看起来像这样:
extern alias Newton;

using System;
using NewtonReference = Newton::Newtonsoft.Json;

public class Test {     
    public static List<string> TestMethod() {
        NewtonReference.JsonConvert.DeserializeObject<string>("");  
    }  
}
Run Code Online (Sandbox Code Playgroud)

希望这对其他人有帮助:)