private void FillFieldSheetDef(SheetDef sheetDef,webforms_sheetdef SheetDefObj) { for(int i=0;i<sheetDef.SheetFieldDefs.Count();i++) {//assign several webforms_sheetfielddef webforms_sheetfielddef SheetFieldDefObj=new webforms_sheetfielddef(); SheetDefObj.webforms_sheetfielddef.Add(SheetFieldDefObj); // assign each property of a single webforms_sheetfielddef with corresponding values. foreach(FieldInfo fieldinfo in sheetDef.SheetFieldDefs[i].GetType().GetFields()) { foreach(PropertyInfo propertyinfo in SheetFieldDefObj.GetType().GetProperties()) { if(fieldinfo.Name==propertyinfo.Name) { if(propertyinfo.PropertyType==typeof(SByte)) { if((bool)fieldinfo.GetValue(sheetDef.SheetFieldDefs[i])==true) { propertyinfo.SetValue(SheetFieldDefObj,(sbyte)1,null); } else { propertyinfo.SetValue(SheetFieldDefObj,(sbyte)0,null); } } else { if(fieldinfo.GetValue(sheetDef.SheetFieldDefs[i])==null) { propertyinfo.SetValue(SheetFieldDefObj,"",null); } else { propertyinfo.SetValue(SheetFieldDefObj,fieldinfo.GetValue(sheetDef.SheetFieldDefs[i]),null); } } } }//foreach propertyinfo }//foreach fieldinfo } }
private void FillFieldSheetDef(SheetDef sheetDef,webforms_sheetdef SheetDefObj) { for(int i=0;i<sheetDef.SheetFieldDefs.Count();i++) {//assign several webforms_sheetfielddef webforms_sheetfielddef SheetFieldDefObj=new webforms_sheetfielddef(); SheetDefObj.webforms_sheetfielddef.Add(SheetFieldDefObj); // assign each property of a single webforms_sheetfielddef with corresponding values. foreach(FieldInfo fieldinfo in sheetDef.SheetFieldDefs[i].GetType().GetFields()) { foreach(PropertyInfo propertyinfo in SheetFieldDefObj.GetType().GetProperties()) { if(fieldinfo.Name==propertyinfo.Name) { if(propertyinfo.PropertyType==typeof(SByte)) { if((bool)fieldinfo.GetValue(sheetDef.SheetFieldDefs[i])==true) { propertyinfo.SetValue(SheetFieldDefObj,(sbyte)1,null); } else { propertyinfo.SetValue(SheetFieldDefObj,(sbyte)0,null); } } //Check if the current field is of type Color. We check fieldinfo instead of propertyinfo because propertyinfo should be of type int (if done correctly). else if(fieldinfo.FieldType==typeof(Color)) { propertyinfo.SetValue(SheetFieldDefObj,((Color)fieldinfo.GetValue(sheetDef.SheetFieldDefs[i])).ToArgb(),null);//Color fields are stored as ints. } else { if(fieldinfo.GetValue(sheetDef.SheetFieldDefs[i])==null) { propertyinfo.SetValue(SheetFieldDefObj,"",null); } else { propertyinfo.SetValue(SheetFieldDefObj,fieldinfo.GetValue(sheetDef.SheetFieldDefs[i]),null); } } } }//foreach propertyinfo }//foreach fieldinfo } }