6

Provare a creare una classe serializzabile in ASP.NET Progetto di libreria di classi vNext. Non è in grado di fornire gli attributi della mia classe [DataContract] o [DataMember]. Come ho appena iniziato ad esplorare vNext quindi sono poco confuso. Se qualcuno mi può guidare se sto facendo la cosa giusta o no. Il mio piccolo codice di esempio.Libreria di classi ASP.NET VNext System.Runtime.Serialization

using System; 
using System.Runtime.Serialization; 

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

    } 
} 
+0

Se si desidera utilizzare DataContractSerializer è necessario contrassegnare i tipi con gli attributi richiesti. Voi affermate che non potete (non date una ragione per cui) e mostrate il codice che lo fa. Non è chiaro quale sia il problema qui. – Will

+0

L'esempio di codice che ho incollato qui presenta errori sui tag degli attributi (DataContract e DataMember). Le linee swirly di IDE non appariranno nell'editor di stack. Il problema che sto affrontando in questo codice è che anche dopo aver usato il namespace per la serializzazione, VS non è in grado di identificare entrambi gli attributi e quindi di darmi un errore in fase di compilazione. – Ali

+0

Puoi anche prendere questo pacchetto dall'archivio dei pacchetti nuget nel lato VS2015. Basta cercare 'System.Runtime.Serialization' e dovrebbe trovarlo e permetterti di aggiungerlo a un progetto specifico. – IbrarMumtaz

risposta

7

Sembra si deve aggiungere "System.Runtime.Serialization "al" frameworkAssembly ".

Visualizza file esempio 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

Questo funziona, ma è un peccato poiché significa che punta semplicemente a un assembly nel GAC piuttosto che un pacchetto. http://stackoverflow.com/q/30747965/299327 –

3

Questa è l'API non ufficiale per abbinare il vecchio spazio dei nomi a quelli nuovi.

http://packagesearch.azurewebsites.net/

per quegli attributi è necessario System.Runtime.Serialization.Xml 4.0.10-beta-22416 se si utilizza nucleo

0

È possibile utilizzare Microsoft.AspNetCore.Mvc.Formatters.Json (o Microsoft.AspNetCore.Mvc.Formatters.Xml) pacchetto da Nuget for .NET nucleo.