public void Establecer(IImplementacion impl, IPropiedad propiedad, object valor, object valorInicial)
 {
     if ((valorInicial != null && !valorInicial.Equals(valor)) || (valorInicial == null && valor != null))
     {
         RegistrarEstablecer(FabricaEstado.Crear(impl, propiedad, valorInicial));
     }
 }
 public void EstablecerUShort(IImplementacion impl, IPropiedad propiedad, ushort valor, ushort valorInicial)
 {
     if (!valorInicial.Equals(valor))
     {
         RegistrarEstablecer(FabricaEstado.Crear(impl, propiedad, valorInicial));
     }
 }
 public void EstablecerString(IImplementacion impl, IPropiedad propiedad, string valor, string valorInicial)
 {
     if (!(valorInicial?.Equals(valor) ?? valor == null)) // si valor inicial es nulo, sera igual al nuevo valor si nuevo valor no es nulo
     {
         RegistrarEstablecer(FabricaEstado.Crear(impl, propiedad, valorInicial));
     }
 }
 public void RemoverObjetoDatos(IImplementacion impl, IPropiedad propiedad, IObjetoDatos valor, int indice)
 {
     RegistrarRemover(FabricaEstado.Crear(impl, propiedad, valor, indice));
 }