public static ActionCommand Load(IValueStream stream)
{
stream.EnterSequence();
var deviceIdentifier = Value<Option<ObjectId>>.Load(stream);
var objectIdentifier = Value<ObjectId>.Load(stream);
var propertyIdentifier = Value<PropertyIdentifier>.Load(stream);
var propertyArrayIndex = Value<Option<uint>>.Load(stream);
var propertyValue = Value<GenericValue>.Load(stream);
var priority = Value<Option<uint>>.Load(stream);
var postDelay = Value<Option<uint>>.Load(stream);
var quitOnFailure = Value<bool>.Load(stream);
var writeSuccessful = Value<bool>.Load(stream);
stream.LeaveSequence();
return new ActionCommand(deviceIdentifier, objectIdentifier, propertyIdentifier, propertyArrayIndex, propertyValue, priority, postDelay, quitOnFailure, writeSuccessful);
}