Сериализация или удаление несериализуемого объекта как части сериализуемого объекта (C#)

Допустим, у меня есть объект класса MyClass с объектом SerialPort внутри него. Я пытаюсь сериализовать и сохранить в файл свой объект «MyClass», но не могу, потому что объекты класса SerialPort не сериализуемы. Переходя к погоне, у меня есть что-то вроде этого:

[Serializable]
public class MyClass
{
    public MyClass()
    {

    }
    public SerialPort mySerialPort;

}

Похоже, С# не позволяет мне отменить или изменить тип mySerialPort. Какой будет обходной путь в этой ситуации?

mySerialPort = null; // obviously doesn't work

Мне нужно получить доступ к последовательному порту из объекта типа MyClass, но мне это не нужно, когда я его сериализую. Есть ли способ передать его в качестве аргумента во время создания объекта, чтобы он не был частью объекта?


person Pavel    schedule 06.12.2018    source источник
comment
бинарный форматтер это   -  person Pavel    schedule 06.12.2018


Ответы (1)


Вы можете пометить поле [NonSerialized], чтобы исключить его из сериализации.

person Klaus Gütter    schedule 06.12.2018
comment
или [XMLIGnore] для свойства; - person HEWhoDoesn'tKnow; 06.12.2018
comment
Не уверен, кто и почему это сделал, но это сработало просто отлично. Спасибо! - person Pavel; 06.12.2018
comment
Затем вы можете рассмотреть возможность принятия этого ответа. - person Klaus Gütter; 06.12.2018