6

Próba utworzenia klasy umożliwiającej serializację w projekcie biblioteki klas klas w programie ASP.NET vNext. Nie mogę podać moich pozycji klasowych [DataContract] lub [DataMember] Atrybuty. Kiedy zacząłem odkrywać vNext, jestem trochę zdezorientowany. Jeśli ktoś może mnie poprowadzić, czy robię to, co właściwe, czy nie. Mój mały przykładowy kod.Biblioteka biblioteki klas VNext programu ASP.NET. Runtime.Serialization

using System; 
using System.Runtime.Serialization; 

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

    } 
} 
+0

Jeśli chcesz użyć DataContractSerializer, musisz zaznaczyć typy z wymaganymi atrybutami. Mówisz, że nie możesz (nie podasz przyczyny) i pokazujesz kod, który to robi. Nie jest jasne, o co tu chodzi. – Will

+0

Wklejony tutaj przykład kodu ma błędy w tagach atrybutów (DataContract i DataMember). Swirly linii IDE nie pojawi się usłyszeć w edytorze stosu. Problem, który napotykam w tym kodzie, polega na tym, że nawet po użyciu przestrzeni nazw do serializacji, VS nie jest w stanie zidentyfikować obu atrybutów, a tym samym daje mi błąd podczas kompilacji. – Ali

+0

Możesz również pobrać ten pakiet z magazynu pakietów Nuget w boku VS2015. Wystarczy wyszukać "System.Runtime.Serialization" i powinien go znaleźć i pozwolić na dodanie go do konkretnego projektu. – IbrarMumtaz

Odpowiedz

7

Wydaje trzeba dodać "System.Runtime.Serialization "do" frameworkAssembly ".

Zobacz plik przykład 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" 
     } 
    } 
+0

Działa to, ale jest to wstyd, ponieważ oznacza to, że po prostu wskazuje na zespół w GAC, a nie pakiet. http://stackoverflow.com/q/30747965/299327 –

3

To jest nieoficjalny interfejs API, który pasuje do starej przestrzeni nazw.

http://packagesearch.azurewebsites.net/

dla tych atrybutów trzeba System.Runtime.Serialization.Xml 4.0.10 beta-22416 jeśli używasz rdzeń

0

Można użyć Microsoft.AspNetCore.Mvc.Formatters.Json (lub Microsoft.AspNetCore.Mvc.Formatters.Xml) pakiet z Nuget NET rdzeń.

Powiązane problemy