Пример #1
0
        public static List <GenericDataFieldAttribute> GetGenericDataFieldAttributes(GenericData obj = null, Type gtype = null, string name = null)
        {
            if (name != null)
            {
                var GTypes = Assembly.GetAssembly(typeof(GenericData)).GetTypes().Where(t => t.IsSubclassOf(typeof(GenericData))).ToList();
                gtype = GTypes.First(x => x.Name == name);
            }
            var attrs = new List <GenericDataFieldAttribute>();

            if (obj != null)
            {
                gtype = obj.GetType();
            }
            if (gtype != null)
            {
                var props = gtype.GetProperties();
                foreach (var pinfo in props)
                {
                    var genericDataField = ((GenericDataFieldAttribute[])pinfo.GetCustomAttributes(typeof(GenericDataFieldAttribute), true)).FirstOrDefault();
                    if (genericDataField != null && !genericDataField.DisableGridEdit)
                    {
                        attrs.Add(genericDataField);
                    }
                }
            }
            return(attrs);
        }