【问题标题】:ASP.NET VNext Class Library System.Runtime.SerializationASP.NET VNext 类库 System.Runtime.Serialization
【发布时间】:2015-01-26 16:01:19
【问题描述】:

试图在 ASP.NET vNext 类库项目中创建一个可序列化的类。无法给我的班级项目 [DataContract] 或 [DataMember] 属性。由于我刚刚开始探索 vNext,所以我有点困惑。如果有人可以指导我是否做正确的事。我的小示例代码。

using System;
using System.Runtime.Serialization;

namespace Schlouds.Business.Entities
{
    [DataContract]
    public class Student
    {
        [DataMember]
        public Guid StudentId { get; set; }

    }
}

【问题讨论】:

  • 如果你想使用 DataContractSerializer 你需要用所需的属性来标记你的类型。你声明你不能(你没有给出原因)并且你展示了这样做的代码。目前尚不清楚这里的问题是什么。
  • 我在此处粘贴的代码示例在属性标签(DataContract 和 DataMember)上有错误。 IDE 的漩涡状线条不会出现在堆栈的编辑器中。我在这段代码中面临的问题是,即使在使用命名空间进行序列化之后,VS 也无法识别这两个属性,从而给我编译时错误。
  • 你也可以从 VS2015 侧的 nuget 包商店获取这个包。只需搜索“System.Runtime.Serialization”,它就会找到并允许您将其添加到特定项目中。

标签: asp.net serialization datacontractserializer asp.net-core visual-studio-2015


【解决方案1】:

看来您必须将“System.Runtime.Serialization”添加到“frameworkAssemblies”。

查看示例 project.json 文件:

"net45": {
        "frameworkAssemblies": {
            "System.Runtime.Serialization": "4.0.0.0"
        },
        "dependencies": {
            "System.Reflection": "4.0.10-beta-22416",
            "System.Reflection.Extensions": "4.0.0-beta-22526",
            "System.Reflection.Primitives": "4.0.0-beta-22526",
            "System.Reflection.TypeExtensions": "4.0.0-beta-22526",
            "System.Collections": "4.0.10-beta-22526",
            "System.Collections.Specialized": "4.0.0-beta-22526",
            "System.Linq": "4.0.0-beta-22526",
            "System.Linq.Expressions": "4.0.0-beta-22526",
            "System.Linq.Queryable": "4.0.0-beta-22526",
            "System.Runtime": "4.0.20-beta-22526",
            "System.Runtime.Serialization.Primitives": "4.0.0-beta-22526",
            "System.Runtime.Serialization.Xml": "4.0.10-beta-22526",
            "System.Runtime.Serialization.Json": "4.0.0.0-beta-22526"
        }
    }

【讨论】:

【解决方案2】:

这是将旧命名空间与新命名空间匹配的非官方 API。

http://packagesearch.azurewebsites.net/

如果您使用核心,则需要 System.Runtime.Serialization.Xml 4.0.10-beta-22416 的那些属性

【讨论】:

    【解决方案3】:

    您可以使用来自 Nuget 的 Microsoft.AspNetCore.Mvc.Formatters.Json(或 Microsoft.AspNetCore.Mvc.Formatters.Xml)包用于 .net 核心。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-03
      • 2014-12-06
      • 1970-01-01
      • 1970-01-01
      • 2015-07-13
      • 2015-04-25
      • 2015-02-09
      相关资源
      最近更新 更多