"Невозможно сериализовать WindowsFormsApp3.FitnesCentre, т.*к. он не имеет беспараметрического конструктора." - C#

Узнай цену своей работы

Формулировка задачи:

добрый день пытаюсь сделать курсовую но наткнулся на проблему скажите как ее решить. Есть класс. вот он
public class FitnesCentre
    {
        public int gs_n { get; set; }
        public string gs_secondName { get; set; }
        public string gs_name { get; set; }
        public int gs_age { get; set; }
        public string gs_phone { get; set; }
        public string gs_employment { get; set; }

        public FitnesCentre()
         {
         }
       
    }
С таким класом программа работает хорошо. Мне нужно было написать unit test. Сделал я это так
      [TestMethod()]
        public void SearchBySecondNameTest1()//1-3-4-5-6-7-3-8-9
        {
            var data = new BindingList<FitnesCentre>();
            data.Add(new FitnesCentre(1, "secondName1", "name1", 1, "phone1", "employment1"));
            data.Add(new FitnesCentre(1, "secondName2", "name2", 2, "phone2", "employment2"));
         
            Form1 target = new Form1();
            List<string> check = target.SearchBySecondName(data, "secondName1");
 
            Assert.AreEqual(check[0], "secondName1 name1");
        }
Но при этом пришлось изменить сам класс вот так
 public class FitnesCentre
    {
        public int gs_n { get; set; }
        public string gs_secondName { get; set; }
        public string gs_name { get; set; }
        public int gs_age { get; set; }
        public string gs_phone { get; set; }
        public string gs_employment { get; set; }

        public FitnesCentre(int gs_n, string gs_secondName, string gs_name, int gs_age, string gs_phone, string gs_employment)
         {
            this.gs_n = gs_n;
            this.gs_secondName = gs_secondName;
            this.gs_name = gs_name;
            this.gs_age = gs_age;
            this.gs_phone = gs_phone;
            this.gs_employment = gs_employment;
         }
       
    }
И уже после этого изменения сама программа выдает ошибку "Невозможно сериализовать WindowsFormsApp3.FitnesCentre, т.*к. он не имеет беспараметрического конструктора." Вот часть кода в котором возникает проблема именно в последней строчке
namespace WindowsFormsApp3
{
    public partial class Form1 : Form
    {
        BindingList<FitnesCentre> data = new BindingList<FitnesCentre>();
        string path = "D:\\tmp.xml";
        XmlSerializer ser = new XmlSerializer(typeof(BindingList<FitnesCentre>));
Как мне решить проблему

Решение задачи: «"Невозможно сериализовать WindowsFormsApp3.FitnesCentre, т.*к. он не имеет беспараметрического конструктора."»

textual
Листинг программы
 public FitnesCentre()
{
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.267 из 5
Похожие ответы