二进制格式在netstandard 1.5

时间:2016-06-26 09:03:20

标签: c# binaryformatter .net-core-rc2

根据List of .NET CoreFx APIs and their associated .NET Platform Standard version,System.Runtime.Serialization.Formatters从1.3开始被添加到.NET平台标准中,这很酷,但是当我尝试创建一个面向netstandard1的.Net Core类库时。 5 under.Net Core RC2,我不能用它。

代码很简单,只是想要声明一个BinaryFormatter:

public class Problems {
    private System.Runtime.Serialization.Formatters.Binary.BinaryFormatter _formatter;
}

错误是:

  

错误CS0234类型或命名空间名称“序列化”不存在   在命名空间'System.Runtime'中(你错过了一个程序集   引用?)

这是project.json,我没有做任何修改:

{
  "version": "1.0.0-*",

  "dependencies": {
    "NETStandard.Library": "1.5.0-rc2-24027",
  },

  "frameworks": {
    "netstandard1.5": {
      "imports": "dnxcore50"
    }
  }
}

那么,我需要依赖的另一个包吗?为什么?对于列表中的所有API,netstandard名字不一定足够吗?

2 个答案:

答案 0 :(得分:5)

  • 在RC2之后添加了System.Runtime.Serialization.Formatters包,它应该包含在明天的1.0版本中。在此期间,您可以使用MyGet
  • 中的版本
  • System.Runtime.Serialization.Formatters的1.0版本不会包含BinaryFormatter。它主要包含序列化属性和接口,以及它们使用的类型。 The full API of that package is here.
  • 即使这样,System.Runtime.Serialization.Formatters也未引用NETStandard.Library。如果要使用它,则需要将其显式添加到project.json。
  • BinaryFormatter will be available in a future version of .Net Core.

答案 1 :(得分:2)

你在RC2中找不到BinaryFormatter

http://packagesearch.azurewebsites.net/

关于它是否是.NET Core的一部分,您可以参考此拉取请求,

https://github.com/dotnet/corefx/pull/8302/files

我想这将是.NET Core 1.0 RTM或1.1版本的一部分。