Table of Contents

Class TriggerSerializer<TTrigger>

Namespace
Quartz.Serialization.Newtonsoft.Triggers
Assembly
Quartz.Serialization.Newtonsoft.dll

Base class for a custom trigger type's JSON serializer.

public abstract class TriggerSerializer<TTrigger> : ITriggerSerializer where TTrigger : ITrigger

Type Parameters

TTrigger
Inheritance
TriggerSerializer<TTrigger>
Implements
Derived
Inherited Members

Remarks

Derive from this for a trigger type of your own. The built-in serializers (SimpleTriggerSerializer and its siblings) are deliberately public and unsealed: a trigger deriving from a built-in trigger — HasAdditionalProperties returning true — pairs with a serializer deriving from the built-in one, overriding SerializeFields(JsonWriter, TTrigger) / DeserializeFields(TTrigger, JObject) and calling the base so the built-in fields keep their stored shape.

Properties

TriggerTypeName

The discriminator this kind of trigger is stored under, shared with the System.Text.Json package so a blob either wrote is readable by both.

public abstract string TriggerTypeName { get; }

Property Value

string

Methods

CreateScheduleBuilder(JObject)

Rebuilds the schedule from the stored fields, as the builder the trigger is reconstructed from.

public abstract IScheduleBuilder CreateScheduleBuilder(JObject source)

Parameters

source JObject

The stored JSON for one trigger.

Returns

IScheduleBuilder

DeserializeFields(TTrigger, JObject)

Reads back whatever the schedule builder did not already restore. Does nothing unless overridden, which is right for a trigger whose every field is part of its schedule.

protected virtual void DeserializeFields(TTrigger trigger, JObject source)

Parameters

trigger TTrigger

The trigger being rebuilt.

source JObject

The stored JSON for that trigger.

SerializeFields(JsonWriter, TTrigger)

Writes this kind of trigger's own fields, with the trigger already typed.

protected abstract void SerializeFields(JsonWriter writer, TTrigger trigger)

Parameters

writer JsonWriter

The writer positioned inside the trigger's JSON object.

trigger TTrigger

The trigger being stored.