Looking for c# Keywords? Try Ask4Keywords

C# Language Добавление большего контроля за счет внедрения ISerializable


пример

Это обеспечит больший контроль над сериализацией, как сохранить и загрузить типы

Внедрить интерфейс ISerializable и создать пустой конструктор для компиляции

[Serializable]
public class Item : ISerializable
{
    private string _name;

    public string Name
    {
        get { return _name; }
        set { _name = value; }
    }

    public Item ()
    {

    }

    protected Item (SerializationInfo info, StreamingContext context)
    {
        _name = (string)info.GetValue("_name", typeof(string));
    }

    public void GetObjectData(SerializationInfo info, StreamingContext context)
    {
        info.AddValue("_name", _name, typeof(string));
    }
}

Для сериализации данных вы можете указать желаемое имя и нужный тип

info.AddValue("_name", _name, typeof(string));

Когда данные десериализованы, вы сможете прочитать нужный тип

_name = (string)info.GetValue("_name", typeof(string));