public void Assign(object o) { ObjectAttribute foParam = new ObjectAttribute(o); string[] flds = foParam.GetFields(); for (int i = 0; i < flds.Length; i++) { foThis.SetField(flds[i], foParam.GetField(flds[i])); } string[] prps = foParam.GetProperties(); for (int i = 0; i < prps.Length; i++) { foThis.SetProperty(prps[i], foParam.GetProperty(prps[i])); } }