.NET API Reference for Oracle® Coherence Community Edition
(14.1.1.0)
E55634-01
The IEvolvable interface is implemented by types that require
forwards- and backwards-compatibility of their serialized form.
Namespace:
Tangosol.IO
Assembly:
Coherence (in Coherence.dll) Version: 14.1.1.1 (14.1.1.1)
Syntaxpublic interface IEvolvable
The IEvolvable type exposes the following members.
Properties
| Name | Description |
---|
 | DataVersion |
Gets or sets the version associated with the data stream from
which this object was deserialized.
|
 | FutureData |
Gets or sets all the unknown remainder of the data stream from
which this object was deserialized.
|
 | ImplVersion |
Determine the serialization version supported by the implementing
type.
|
Top
Remarks
An
IEvolvable class has an integer version identifier
n,
where
n >= 0. When the contents and/or semantics of the
serialized form of the
IEvolvable class changes, the version
identifier is increased. Two versions identifiers,
n1
and
n2, indicate the same version if
n1 == n2;
the version indicated by n2 is newer than the version
indicated by
n1 if
n2 > n1.
The
IEvolvable interface is designed to support the evolution of
types by the addition of data. Removal of data cannot be safely
accomplished as long as a previous version of the type exists that
relies on that data. Modifications to the structure or semantics of
data from previous versions likewise cannot be safely accomplished
as long as a previous version of the type exists that relies on the
previous structure or semantics of the data.
When an
IEvolvable object is deserialized, it retains any unknown
data that has been added to newer versions of the type, and the
version identifier for that data format. When the
IEvolvable object
is subsequently serialized, it includes both that version identifier
and the unknown future data.
When an
IEvolvable object is deserialized from a data stream whose
version identifier indicates an older version, it must default and/or
calculate the values for any data fields and properties that have
been added since that older version. When the
IEvolvable object is
subsequently serialized, it includes its own version identifier and
all of its data. Note that there will be no unknown future data in
this case; future data can only exist when the version of the data
stream is newer than the version of the
IEvolvable type.
See Also