“对象”类型是在未引用的程序集中定义的

时间:2018-08-06 12:58:07

标签: c# .net

我知道这个错误很常见,但是我找不到任何SO问题来解决我的问题。

我有这段代码:

    public static T _download_serialized_json_data<T>(string url) where T : new()
    {
            //This Line raise the error
            JsonConvert.ToObject(await new HttpClient().GetStringAsync(url));
            }
            catch (Exception) { }
            //This line raise a second error(same as the first one)
            return !string.IsNullOrEmpty(json_data) ? JsonConvert.DeserializeObject<T>(json_data) : new T();
     }

关于代码的第一行和最后一行,我遇到了错误

  

错误CS0012在未引用的程序集中定义了“对象”类型。您必须添加对程序集“ netstandard,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = cc7b13ffcd2ddd51”的引用。

好像JsonConvert不包含ToObject和DeserializeObject的定义。我不明白我缺少哪一个参考。奇怪的是,如果我在另一个页面上添加另一个类,然后在其中使用相同的using添加此方法,则不会出现错误。

我的csproj:

  <PropertyGroup>
  <TargetFramework>netstandard2.1</TargetFramework>
  </PropertyGroup>
  <PropertyGroup>
    <PackageTargetFallback>$(PackageTargetFallback);portable-net45+win8+wp8+wpa81;</PackageTargetFallback>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.0.0" />
    <PackageReference Include="Microsoft.AspNetCore" Version="2.1.2" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.1.1" />
    <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.1.1" />
    <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="2.1.1" />
    <PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Ver sion="2.1.1" />
    <PackageReference Include="Newtonsoft.Json" Version="11.0.2" />
  </ItemGroup>
  <ItemGroup>
    <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.1" />
  </ItemGroup>

1 个答案:

答案 0 :(得分:0)

<TargetFramework>netstandard2.1</TargetFramework>

不知道那是怎么发生的,但这必须是

<TargetFramework>netcoreapp2.1</TargetFramework>