En la mayoría de los casos quieres cambiar el valor de una variable y dejarla así pero en algunas ocasiones quieres cambiar el valor de la variable, hacer algo y ponerla como estaba.
Con este código es muy fácil y te aseguras de que no te vas a olvidar nunca.
La idea es crear una clase que implemente la interfaz IDisposable y guarde los valores en el estado en el que estaban cuando se creó y luego los ponga a lo que necesitemos. Después, en el Dispose, los cambiará otra vez a los valores iniciales:
public class ManageAllowUnsafeUpdates : IDisposable { private readonly bool allowUnsafeUpdatesStatus; private readonly SPWeb Web; public ManageAllowUnsafeUpdates(SPWeb Web) { this.Web = Web; allowUnsafeUpdatesStatus = Web.AllowUnsafeUpdates; Web.AllowUnsafeUpdates = true; } public void Dispose() { Web.AllowUnsafeUpdates = allowUnsafeUpdatesStatus; } }
Usarlo es así de simple:
using (new ManageAllowUnsafeUpdates(Web)) { ListItem[this.FieldName] = (String)value; ListItem.Update(); }
Y no te tienes que preocupar nunca más de si el valor estaba a true o false antes porque la clase se ocupará de todo por ti.
Este código es un poco tonto, pero creo que sirve bien para demostrar la idea.
No hay comentarios:
Publicar un comentario