2012-05-20 6 views
7

問題なく動作する前に、私が編集したWebサービスがあります。今すぐこのエラーが表示されます:パラメータのないコンストラクタがないため、シリアル化できません。パラメータなしのコンストラクタがないためWebserviceをシリアル化できません

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; 
     } 
    } 
} 

あなたがこれを解決することができる場合、私は間違って何をしたか説明してください:)

+1

何を変更しましたか?コンストラクタを追加/変更しますか? –

+0

構造体をクラスに変更しましたが、以下の答えで問題が解決しました。 – Kage

答えて

9

をクラスをデシリアライズ/シリアライズすることができるようにするには、シリアライザは、パラメータなしのコンストラクタが必要です。したがって、パラメータのないコンストラクタをクラスに追加する必要があります。

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

ありがとう!これは確かに問題でした。 – Kage

関連する問題