Looking for c# Keywords? Try Ask4Keywords

C# Language Создание объекта сериализации


пример

Добавьте атрибут [Serializable] чтобы пометить весь объект для двоичной сериализации:

[Serializable]
public class Vector
{
    public int X;
    public int Y;
    public int Z;

    [NonSerialized]
    public decimal DontSerializeThis;

    [OptionalField]
    public string Name;
}

Все члены будут сериализованы, если мы явно не [NonSerialized] атрибута [NonSerialized] . В нашем примере X , Y , Z и Name все сериализованы.

Все члены должны присутствовать при десериализации, если не отмечены [NonSerialized] или [OptionalField] . В нашем примере X , Y и Z являются обязательными, и десериализация не выполняется, если они не присутствуют в потоке. DontSerializeThis всегда будет установлен по default(decimal) (который равен 0). Если Name присутствует в потоке, то он будет установлен в это значение, в противном случае он будет установлен по default(string) (который является нулевым). Цель [OptionalField] - предоставить немного допуск к версии.