我知道这个错误很常见,但是我找不到任何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>
答案 0 :(得分:0)
<TargetFramework>netstandard2.1</TargetFramework>
不知道那是怎么发生的,但这必须是
<TargetFramework>netcoreapp2.1</TargetFramework>