Serializer.overrideSerializer

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

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

Parameters

func void function

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

Examples

class Base {}
class Foo : Base {}

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

void func (Base value, Serializer serializer, Data key) {
    // perform serialization
}

Serializer.registerSerializer!(Foo)(&func);

void overrideFunc (Base value, Serializer serializer, Data key) {
    // this will override the above serializer
}

serializer.overrideSerializer!(Foo)(&overrideFunc);

Meta