Um ein neues Work-Item zu erstellen, erstellt man zunächst eine neue Klasse, die von WorkItemBase erbt. Im einfachsten Fall überschreibt man nur die Run-Methode und führt darin die Arbeit aus.

public class MyWorkItem : WorkItemBase
{
    protected override void Run()
    {
        // Do some work
    }
}

Wenn ein Work-Item keinen Standardkonstruktor haben soll (kann sinnvoll sein), dann muss für die JSON-Deserialisierung ein privater Standard-Konstruktor definiert werden.

public class MassOperationRelationCleanupTask : WorkItemBase
{
    /// <summary>Default constructor for deserialization only</summary>
    [JsonConstructor]
    private MassOperationRelationCleanupTask() { }
    /// <summary>Own contructor</summary>
    public MassOperationRelationCleanupTask(Guid holderRecordOid, Guid? ...

Am Wahrscheinlichsten muss man neben Run noch die Methode WorkItemFinished überschreiben, siehe Dokumentation unten.