c# – 可移植类库与.NET 4.6没有DataContract或Serialization函数
作者:互联网
我刚刚在一个全新的Windows 10副本上拿出了一个全新的Visual Studio 2015副本.我试图创建一个简单的可移植类库(PCL)并试图添加一个简单的数据契约:
namespace ClassLibrary1
{
using System.Runtime.Serialization;
[DataContract]
public class Class1
{
}
}
编译器告诉我:
找不到类型或命名空间名称’DataContract'(您是否缺少using指令或程序集引用.当选择.NET 4.6作为目标时,似乎缺少名称空间System.Runtime.Serialization.
当为目标选择.NET Framework 4.6时,似乎没有可用的序列化.如果我回退到.NET 4.5.1,那么相同的代码编译(并在一个更复杂的项目中运行).这里发生了什么? .NET 4.6还没有为Visual Studio中的Prime Time做好准备吗?其他人遇到这个?
解决方法:
这里有同样的问题,似乎解决方案是将相关的NuGet包添加到包含已移出Core的功能的项目中.具体来说,你需要Serialization Primitives,但我已经包含了下面的project.json文件,它可能更接近你想要的实际配置(依赖关系等)
This site还有一个针对.NET 5软件包的“搜索引擎”,这基本上就是你在这里所做的.
{
"supports": {
"net46.app": {},
"uwp.10.0.app": {},
"dnxcore50.app": {}
},
"dependencies": {
"Microsoft.NETCore": "5.0.0",
"Microsoft.NETCore.Portable.Compatibility": "1.0.0",
"System.Collections": "4.0.10",
"System.Collections.Specialized": "4.0.0",
"System.Linq": "4.0.0",
"System.Linq.Expressions": "4.0.10",
"System.Linq.Queryable": "4.0.0",
"System.Net.Requests": "4.0.10",
"System.Runtime": "4.0.20",
"System.Runtime.Serialization.Primitives": "4.0.10",
"System.Runtime.Serialization.Json": "4.0.0",
"System.Runtime.Serialization.Xml": "4.0.10"
},
"frameworks": {
"dotnet": {
"imports": "portable-net452+win81"
}
}
}
标签:c,visual-studio-2015,datacontract,net-4-6 来源: https://codeday.me/bug/20190528/1169407.html