Beispiel #1
0
        public static T ValorAtributo <T>(XAttribute pAtributo)
        {
            E_TIPO_DATO pTipoDato = E_TIPO_DATO.INT;

            Type vTipo = typeof(T);

            object oAtributo = null;

            if (vTipo == typeof(int) || vTipo == typeof(int?))
            {
                pTipoDato = E_TIPO_DATO.INT;
            }

            if (vTipo == typeof(decimal) || vTipo == typeof(decimal?))
            {
                pTipoDato = E_TIPO_DATO.DECIMAL;
            }

            if (vTipo == typeof(bool) || vTipo == typeof(bool?))
            {
                pTipoDato = E_TIPO_DATO.BOOLEAN;
            }

            if (vTipo == typeof(DateTime) || vTipo == typeof(DateTime?))
            {
                pTipoDato = E_TIPO_DATO.DATETIME;
            }

            if (vTipo == typeof(string))
            {
                pTipoDato = E_TIPO_DATO.STRING;
            }

            if (vTipo == typeof(Guid))
            {
                pTipoDato = E_TIPO_DATO.GUID;
            }

            oAtributo = ValorAtributo(pAtributo, pTipoDato);

            if (!(vTipo.IsGenericType && vTipo.GetGenericTypeDefinition() == typeof(Nullable <>)) && oAtributo == null)
            {
                oAtributo = default(T);
            }

            return((T)oAtributo);
        }
Beispiel #2
0
        public static object ValorAtributo(XAttribute pAtributo, E_TIPO_DATO pTipoDato)
        {
            object oAtributo = null;

            if (pAtributo != null)
            {
                switch (pTipoDato)
                {
                case E_TIPO_DATO.INT:
                    int intValue = -1;
                    if (int.TryParse(pAtributo.Value, out intValue))
                    {
                        oAtributo = intValue;
                    }
                    else
                    {
                        oAtributo = null;
                    }
                    break;

                case E_TIPO_DATO.DECIMAL:
                    decimal decValue = -1;
                    if (decimal.TryParse(pAtributo.Value, out decValue))
                    {
                        oAtributo = decValue;
                    }
                    else
                    {
                        oAtributo = null;
                    }
                    break;

                case E_TIPO_DATO.DATETIME:
                    DateTime temp;
                    if (DateTime.TryParse(pAtributo.Value, out temp))
                    {
                        oAtributo = temp;
                    }
                    else
                    {
                        oAtributo = null;
                    }
                    break;

                case E_TIPO_DATO.BOOLEAN:
                    switch (pAtributo.Value)
                    {
                    case "1":
                    case "true":
                        oAtributo = true;
                        break;

                    case "0":
                    case "false":
                        oAtributo = false;
                        break;

                    default:
                        oAtributo = null;
                        break;
                    }
                    break;

                case E_TIPO_DATO.STRING:
                    oAtributo = pAtributo.Value;
                    break;

                case E_TIPO_DATO.GUID:
                    Guid guidValue;
                    if (Guid.TryParse(pAtributo.Value, out guidValue))
                    {
                        oAtributo = guidValue;
                    }
                    else
                    {
                        oAtributo = null;
                    }
                    break;
                }
            }

            return(oAtributo);
        }