示例#1
0
 /// <summary>
 /// Obtiene o establece el valor del objeto con la llave seleccionada.
 /// </summary>
 /// <param name="key">Corresponde al nombre que se le dio al objeto al generar la llave</param>
 /// <param name="tdDevolver">Es el enumerador que indica que tipo de valor se va a devolver: </para>
 /// Entero devuelve - 0 si el valor es de otro tipo o la llave no existe, </para>
 /// Cadena devuelve - devuelve el valor convertido a string y vacio ("") si la llave
 ///  no existe, </para>
 /// Objeto devuelve - null si es de otro tipo o la llave no existe, </para>
 /// Control devuelve - new Control() si es de otro tipo o la llave no existe. </para>
 /// stdClass devuelve - new stdClassCSharp si es de otro tipo o no existe. </para>
 /// Boleano devuelve - true o false si el objeto tiene o no tiene valor.</param>
 public dynamic this[string key, TiposDevolver tdDevolver]
 {
     get
     {
         return(fDevuelveValoresPorTipo(key, tdDevolver));
     }
     set
     {
         var p = propiedadesGeneradas as IDictionary <String, object>;
         p[key.ToString()] = value;
     }
 }
示例#2
0
 /// <summary>
 /// Obtiene o establece el valor del objeto con el indice seleccionado.
 /// </summary>
 /// <param name="key">Corresponde al indice en caso de que se quiera tomar como algun arreglo</param>
 /// <param name="tdDevolver">Es el enumerador que indica que tipo de valor se va a devolver:
 /// Entero devuelve - 0 si el valor es de otro tipo o la llave no existe,
 /// Cadena devuelve - devuelve el valor convertido a string y vacio ("") si la llave no existe,
 /// Objeto devuelve - null si es de otro tipo o la llave no existe,
 /// Control devuelve - new Control() si es de otro tipo o la llave no existe.</param>
 public dynamic this[int key, TiposDevolver tdDevolver]
 {
     get
     {
         string llave = ((IDictionary <String, object>)propiedadesGeneradas).Keys.ElementAt(key);
         return(fDevuelveValoresPorTipo(llave, tdDevolver));
     }
     set
     {
         var p = propiedadesGeneradas as IDictionary <String, object>;
         if (((IDictionary <String, object>)propiedadesGeneradas).Keys.Count > key)
         {
             string llave = ((IDictionary <String, object>)propiedadesGeneradas).Keys.ElementAt(key);
             p[llave.ToString()] = value;
         }
         else
         {
             p[key.ToString()] = value;
         }
     }
 }
示例#3
0
        /// <summary>
        /// Obtiene el valor correspondiente por el tipo de dato requerido
        /// </summary>
        /// <param name="key">La llave que apunta al objeto</param>
        /// <param name="tdDevolver">Corresponde al tipo de dato que se desea devolver</param>
        /// <returns></returns>
        private dynamic fDevuelveValoresPorTipo(string key, TiposDevolver tdDevolver)
        {
            var ValorDevolver = 0;

            if (!((IDictionary <String, object>)propiedadesGeneradas).ContainsKey(key))
            {
                switch (tdDevolver)
                {
                case TiposDevolver.Entero:
                    return(0);

                case TiposDevolver.Cadena:
                    return("");

                case TiposDevolver.Objeto:
                    return(null);

                case TiposDevolver.stdClass:
                    return(new stdClassCSharp());

                case TiposDevolver.Boleano:
                    return(false);
                }
            }
            else
            {
                var p = ((IDictionary <String, object>)propiedadesGeneradas);
                switch (tdDevolver)
                {
                case TiposDevolver.Entero:
                    int iEntero = 0;
                    if (this[key, TiposDevolver.Boleano])
                    {
                        int.TryParse(p[key].ToString(), out iEntero);
                    }
                    return(iEntero);

                case TiposDevolver.Cadena:
                    try
                    {
                        string sString = "";
                        if (this[key, TiposDevolver.Boleano])
                        {
                            sString = p[key].ToString();
                        }
                        return(sString);
                    }
                    catch
                    {
                        return(string.Empty);
                    }

                case TiposDevolver.Objeto:
                    if (this[key, TiposDevolver.Boleano])
                    {
                        return((Object)p[key]);
                    }
                    else
                    {
                        return(null);
                    }

                case TiposDevolver.stdClass:
                    if (this[key, TiposDevolver.Boleano] && p[key] is stdClassCSharp)
                    {
                        return(p[key] as stdClassCSharp);
                    }
                    else
                    {
                        return(new stdClassCSharp());
                    }

                case TiposDevolver.Boleano:
                    if (p[key] == null)
                    {
                        return(false);
                    }
                    else if (p[key] is bool)
                    {
                        return((bool)p[key]);
                    }
                    else
                    {
                        return(true);
                    }
                }
            }

            return(ValorDevolver);
        }