C# Сериализация WinFormC#

Место общения программистов C#
Ответить
Anonymous
 C# Сериализация WinForm

Сообщение Anonymous »

Я пытаюсь сериализовать winform, с конечной целью — воссоздать значения в различных элементах управления формы. Моя форма содержит типичные элементы управления: кнопки/переключатели/флажки/текстовые поля/список/вкладки.

Я получаю эту ошибку:

Код: Выделить всё

An exception of type 'System.InvalidOperationException' occurred
in System.Xml.dll but was not handled in user code

Additional information: There was an error reflecting type
'Receptionist_Program.Objects.Client.Client_NCQ'.
Я настраиваю свойства для каждого значения, которое хочу сохранить:

Код: Выделить всё

    public bool CbMedTreat
{
get { return cbMedTreat.Checked; }
set { cbMedTreat.Checked = value; }
}

public List TxtDocExplain // Client_AddDoctor is another form
{
get { return listDoctors; }
set { listDoctors = value; }
}
// etc, variety of string and bool properties
В верхней части класса у меня есть украшение:

Код: Выделить всё

    [Serializable]
public partial class Client_NCQ : Form
Наконец, вот мой код, выполняющий сериализацию:

Код: Выделить всё

            Client_NCQ badname = new Client_NCQ();
badname.Initialize();
badname.ShowDialog();

string result = "";

XmlSerializer xmlSerializer = new XmlSerializer(typeof(Client_NCQ));
// Error occurs here on above line: new XmlSerializer(typeof(Client_NCQ))
using (StringWriter textWriter = new StringWriter())
{
xmlSerializer.Serialize(textWriter, badname);
result = textWriter.ToString();
}
Я попробовал два разных варианта: во-первых, я добавил украшение [XmlIgnore] к свойству List, это не имело никакого значения. Во-вторых, я попытался убедиться, что конструктор пуст и не имеет параметров.

Подробнее здесь: https://stackoverflow.com/questions/369 ... ze-winform
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»