我正在尝试将项目从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并从头开始恢复已解决了这个问题。
答案 0 :(得分:2)
将System.Runtime.Extensions 4.1.0添加到project.json
。
快速搜索以下网站可以显示原因,
答案 1 :(得分:1)
使用project.json编译你的代码就好了。
Convert.ToInt32(object) is defined in the System.Runtime.Extensions
reference assembly.
System.Runtime.Extensions
的实施大会将System.Convert
转发给mscorlib
(使用[TypeForwardedTo]
)。