Serializer.overrideDeserializer

Overrides a globally registered deserializer for the given type with a deserializer local to the receiver.

The receiver will first check if a local deserializer is registered, otherwise a global deserializer will be used (if available).

Parameters

dg void delegate

the callback that will be called when value of the given type is about to be deserialized

Examples

class Base {}
class Foo : Base {}

auto archive = new XmlArchive!();
auto serializer = new Serializer(archive);

auto dg = (ref Base value, Serializer serializer, Data key) {
    // perform deserialization
};

Serializer.registerSerializer!(Foo)(dg);

auto overrideDg = (ref Base value, Serializer serializer, Data key) {
    // this will override the above deserializer
};

serializer.overrideSerializer!(Foo)(overrideDg);

Meta