7

問題なく動作する前に、編集した Web サービスがあります。ただし、現在、このエラーが発生しています。パラメーターなしのコンストラクターがないため、シリアル化できません。クラスを以下に投稿しました。

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

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

4

1 に答える 1

10

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

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;
        }
    }
}
于 2012-05-20T09:26:27.923 に答える