示例#1
0
        public List <string> GetSpreadsheetColumnFieldHeadings()
        {
            List <string> Headings = new List <string>();
            var           Flags    = BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public;
            var           Fields   = this.GetType().GetFields(Flags).ToList();

            foreach (var Field in Fields)
            {
                var Attributes = Field.GetCustomAttributes();
                foreach (var Attr in Attributes)
                {
                    if (Attr is SpreadsheetColumn)
                    {
                        SpreadsheetColumn ColumnAttr = Attr as SpreadsheetColumn;
                        Headings.Add(ColumnAttr.Heading);
                    }
                }
            }
            return(Headings);
        }
示例#2
0
        public virtual void Process()
        {
            var Flags  = BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public;
            var Fields = this.GetType().GetFields(Flags).ToList();

            foreach (var Field in Fields)
            {
                var Attributes = Field.GetCustomAttributes();
                foreach (var Attr in Attributes)
                {
                    if (Attr is SpreadsheetColumn)
                    {
                        SpreadsheetColumn ColumnAttr = Attr as SpreadsheetColumn;
                        List <string>     ColumnData = GetDataFromHeading(ColumnAttr.Heading);
                        object            FieldData  = ColumnAttr.ConvertDataToDesiredType(ColumnData);
                        Field.SetValue(this, FieldData);
                    }
                }
            }
        }