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); }
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); } } } }