找不到与.NET Standard一起使用的Convert.ToInt32方法

时间:2016-08-22 11:50:51

标签: .net-core

我正在尝试将项目从netcoreapp框架更新为netstandard并寻找替换从object到int的转换的方法:

int value =  Convert.ToInt32(rawObject);

因为Convert类在CoreCLR中定义,不能与.NET标准框架一起使用。

project.json:

{
  "version": "1.0.0-*",

  "dependencies": {
    "System.Runtime": "4.1.0",
    "System.Linq": "4.1.0",
    "System.Linq.Expressions": "4.1.0",
    "System.Reflection": "4.1.0",
    "System.Threading.Tasks": "4.0.11",
    "System.Reflection.TypeExtensions": "4.1.0",
    "System.Runtime.Extensions": "4.1.0"
  },

  "frameworks": {
    "netstandard1.6": {
    }
  }
}

更新

感谢@ Lex-Li和@svick:Convert.ToInt32(object)方法确实在System.Runtime.Extensions引用程序集中定义。  在我的情况下,即使更新依赖项后我也有以下错误: "The name 'Convert' does not exist in the current context".

删除project.lock.json并从头开始恢复已解决了这个问题。

2 个答案:

答案 0 :(得分:2)

将System.Runtime.Extensions 4.1.0添加到project.json

快速搜索以下网站可以显示原因,

http://packagesearch.azurewebsites.net/

答案 1 :(得分:1)

使用project.json编译你的代码就好了。

Convert.ToInt32(object) is defined in the System.Runtime.Extensions reference assembly.

System.Runtime.Extensions的实施大会将System.Convert转发给mscorlib(使用[TypeForwardedTo])。