MIDs 0006 (request), 0008 (subscription), and 0009 (unsubscription) contain free-form payloads that depend on the specific MID being requested. These are modeled using ExtraData classes.
Packing: Use SetExtraData on the container MID. This automatically populates SubscriptionMid, WantedRevision, ExtraDataLength, and ExtraData.
Parsing: First, parse the container MID. Then, instantiate the appropriate ExtraData class using the WantedRevision from the container and pass the ExtraData bytes to its .Parse() method.
// Packing extra data
var subscription = new Mid0008();
subscription.SetExtraData(new Mid1201ExtraDataSubscription
{
SendAlternatives = 1,
DataIdentifierTimestamp = new DateTime(2026, 8, 7, 13, 45, 0),
SendObjectData = true
});
var package = subscription.Pack();
// Parsing extra data
var mid08 = interpreter.Parse<Mid0008>(package);
var extraData = (Mid1201ExtraDataSubscription)new Mid1201ExtraDataSubscription(mid08.WantedRevision)
.Parse(mid08.ExtraData);