Show / Hide Table of Contents

# Namespace Apache.Ignite.Core.Binary

### Classes

#### BinaryBasicNameMapper

Base binary name mapper implementation.

#### BinaryConfiguration

Binary type configuration.

#### BinaryObjectException

Indicates an error during binarization.

#### BinaryReflectiveSerializer

Binary serializer which reflectively writes all fields except of ones with System.NonSerializedAttribute.

Note that Java platform stores dates as a difference between current time and predefined absolute UTC date. Therefore, this difference is always the same for all time zones. .NET, in contrast, stores dates as a difference between current time and some predefined date relative to the current time zone. It means that this difference will be different as you change time zones. To overcome this discrepancy Ignite always converts .NET date to UTC form before serializing and allows user to decide whether to deserialize them in UTC or local form using `ReadTimestamp(..., true/false)` methods in IBinaryReader and IBinaryRawReader. This serializer always read dates in UTC form. It means that if you have local date in any field/property, it will be implicitly converted to UTC form after the first serialization-deserialization cycle.

#### BinaryTypeConfiguration

Binary type configuration.

#### BinaryTypeNames

Binary type name constants.

#### TimestampAttribute

Instructs the serializer to write DateTime fields and properties in Timestamp format, which is interoperable with other platforms and works in SQL, but does not allow non-UTC values.

When applied to a struct or a class, changes behavior for all fields and properties.

Normally serializer uses WriteObject<T>(String, T) for DateTime fields. This attribute changes the behavior to WriteTimestamp(String, Nullable<DateTime>).

See also ForceTimestamp.

### Interfaces

#### IBinarizable

Interface to implement custom serialization logic.

#### IBinary

Defines binary objects functionality. With binary objects you are able to:

- Seamlessly interoperate between Java, .NET, and C++.
- Make any object binary with zero code change to your existing code.
- Nest binary objects within each other.
- Automatically handle `circular` or `null` references.
- Automatically convert collections and maps between Java, .NET, and C++.
- Optionally avoid deserialization of objects on the server side.
- Avoid need to have concrete class definitions on the server side.
- Dynamically change structure of the classes without having to restart the cluster.
- Index into binary objects for querying purposes.

#### IBinaryIdMapper

Maps class name and class field names to integer identifiers.

#### IBinaryNameMapper

Maps type and field names to different names.

#### IBinaryObject

Wrapper for serialized objects.

#### IBinaryObjectBuilder

binary object builder. Provides ability to build binary objects dynamically without having class definitions.

Note that type ID is required in order to build binary object. Usually it is enough to provide a simple type name and Ignite will generate the type ID automatically.

#### IBinaryRawReader

Raw reader for binary objects.

#### IBinaryRawWriter

Raw writer for binary objects.

#### IBinaryReader

Reader for binary objects.

#### IBinarySerializer

Binary serializer.

#### IBinaryType

Binary type metadata.

#### IBinaryWriter

Writer for binary objects.

#### ITimestampConverter

Converts System.DateTime values to Java Timestamp and back.