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).

  1. void overrideDeserializer(void delegate(ref Base, Serializer, Data) dg)
  2. void overrideDeserializer(void function(ref Base, Serializer, Data) func)
    class Serializer
    void
    overrideDeserializer
    (
    Derived
    Base
    )
    (
    void function
    (
    ref Base
    ,,)
    func
    )

Examples

class Base {}
class Foo : Base {}

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

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

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

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

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

Meta