Sunday, October 20, 2013

getting basic data types using reflection than nullable

While using class properties to use for data base connectivity, i.e. LINQ TO SQL, I was facing issue for nullable types. I was using Reflection to fetch property type names, but for NULLABLE properties it use to send me property type name as NULLABLE`1. I was suppose to use following switch case (Determine Nullable properties via reflection)
public static string getJSType(PropertyInfo propertyinfo)
        {

//GetCoreType function returns Property type.
switch (GetCoreType(propertyinfo.PropertyType).Name.ToUpper())
                {
                    case "INT16":
                        return "number";
                    case "UINT16":
                        return "number";
                    case "SHORT":
                        return "number";
                    case "USHORT":
                        return "number";
                    case "INT32":
                        return "number";
                    case "UINT32":
                        return "number";
                    case "INT":
                        return "number";
                    case "UINT":
                        return "number";
                    case "INT64":
                        return "longnumber";
                    case "UINT64":
                        return "longnumber";
                    case "LONG":
                        return "longnumber";
                    case "ULONG":
                        return "longnumber";
                    case "DECIMAL":
                        return "decimal";
                    case "DOUBLE":
                        return "float";
                    case "BIGINT":
                        return "longnumber";
                    case "STRING":
                        return "text";
                    case "DATETIME":
                        return "datepicker";
                    case "BOOLEAN":
                        return "flag";
                }
            //}
            return "text";
        }
To determine type of NULLABLE properties via reflection, I used following function GetCoreType
 private Type GetCoreType(Type type)
        {
            if (type.IsGenericType &&
                type.GetGenericTypeDefinition() == typeof(Nullable<>))
                return Nullable.GetUnderlyingType(type);
            else
                return type;
        }
Find Type of Nullable Properties via Reflection. Determine type of Nullable properties view Relection. While using reflection get core property type of nullable properties.
Submit this story to DotNetKicks

0 comments: