Cambiar temporalmente el diseño de un elemento de Sitecore

Utilizando este código, logré cambiar las representaciones en el elemento actual. Sin embargo, esto cambió de forma permanente en Sitecore (los cambios se podían ver en el CMS) y no temporalmente, como esperaba.

void ReplaceLayout(Item item)
{
    if (item == null)
        return;

    using (new SecurityDisabler())
    {
        // New item
        LayoutField newLayoutField = new LayoutField(item.Fields[Sitecore.FieldIDs.LayoutField]);
        LayoutDefinition newLayoutDefinition = LayoutDefinition.Parse(newLayoutField.Value);

        DeviceDefinition newDeviceDefinition = newLayoutDefinition.GetDevice(Sitecore.Context.Device.ID.ToString());

        // Current item
        LayoutField layoutField = new LayoutField(Sitecore.Context.Item.Fields[Sitecore.FieldIDs.LayoutField]);
        LayoutDefinition layoutDefinition = LayoutDefinition.Parse(layoutField.Value);

        DeviceDefinition deviceDefinition = layoutDefinition.GetDevice(Sitecore.Context.Device.ID.ToString());
        deviceDefinition.Layout = newDeviceDefinition.Layout;
        deviceDefinition.Renderings = newDeviceDefinition.Renderings;

        Sitecore.Context.Item.Editing.BeginEdit();
        layoutField.Value = layoutDefinition.ToXml();
        Sitecore.Context.Item.Editing.EndEdit();
    }
}

No quiero hacer cambios permanentes en el elemento, solo quiero reemplazar las representaciones de los elementos mostrados actualmente sobre la marcha si se cumplen algunas condiciones. ¿Alguien sabe cómo alterar el diseño de un elemento de esta manera?

Respuestas a la pregunta(8)

Su respuesta a la pregunta