2012-05-20 28 views
7

Tengo un servicio web que he editado, antes de que funcionara sin problemas. sin embargo ahora estoy recibiendo este error: no se puede serializar porque no tiene un constructor sin parámetros. He publicado mi clase a continuación.El servicio web no se puede serializar porque no tiene un constructor sin parámetros

public class Class 
{ 
    public class AnsweredQ 
    { 
     public string Question { get; set; } 
     public string Answer { get; set; } 

     public AnsweredQ(string _Question, string _Answer) 
     { 
      Question = _Question; 
      Answer = _Answer; 
     } 
    } 
    public class UnAnsweredQ 
    { 
     public string Question { get; set; } 
     public string[] Options { get; set; } 

     public UnAnsweredQ(string _Question, string[] _Options) 
     { 
      Question = _Question; 
      Options = _Options; 
     } 
    } 
    public class Trial 
    { 
     public string User { get; set; } 
     public DateTime TrialDate { get; set; } 
     public bool Expired { get; set; } 

     public Trial (string _User, DateTime _TrialDate, bool _Expired) 
     { 
      User = _User; 
      TrialDate = _TrialDate; 
      Expired = _Expired; 
     } 
    } 
} 

si puede resolver esto por favor explicar lo que hice mal :)

+1

¿Qué cambió? Añadir/cambiar los constructores? –

+0

cambié las estructuras en clases, pero la respuesta a continuación resolvió el problema. – Kage

Respuesta

9

Para poder serializar/deserializar una clase, el serializador requiere un constructor sin parámetros. Por lo tanto, debe agregar los constructores sin parámetros a sus clases, es decir:

public class AnsweredQ 
    { 
     public string Question { get; set; } 
     public string Answer { get; set; } 

     public AnsweredQ() { } 


     public AnsweredQ(string _Question, string _Answer) 
     { 
      Question = _Question; 
      Answer = _Answer; 
     } 
    } 
    public class UnAnsweredQ 
    { 


     public string Question { get; set; } 
     public string[] Options { get; set; } 

     public UnAnsweredQ() {} 

     public UnAnsweredQ(string _Question, string[] _Options) 
     { 
      Question = _Question; 
      Options = _Options; 
     } 
    } 


    public class Trial 
    { 
     public string User { get; set; } 
     public DateTime TrialDate { get; set; } 
     public bool Expired { get; set; } 

     public Trial() 
     { 
     } 

     public Trial (string _User, DateTime _TrialDate, bool _Expired) 
     { 
      User = _User; 
      TrialDate = _TrialDate; 
      Expired = _Expired; 
     } 
    } 
} 
+0

¡Gracias! este fue de hecho el problema. – Kage

Cuestiones relacionadas