编程语言
首页 > 编程语言> > c# – 可移植类库与.NET 4.6没有DataContract或Serialization函数

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