Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Job
- {
- public string job_id = "";
- public string description = "";
- public string address = "";
- public string details = "";
- }
- private Job ApplyFilters(Job job_in, Job job_filters)
- {
- Type type = typeof(Job);
- Job job_out = new Job();
- FieldInfo[] fields = type.GetFields();
- // iterate through all fields of Job class
- for (int i = 0; i < fields.Length; i++)
- {
- List<string> filterslist = new List<string>();
- string filters = (string)fields[i].GetValue(job_filters);
- // if job_filters contaisn magic word "$" for the field, then do something with a field, otherwise just copy it to job_out object
- if (filters.Contains("$"))
- {
- filters = filters.Substring(filters.IndexOf("$") + 1, filters.Length - filters.IndexOf("$") - 1);
- // MessageBox.Show(filters);
- // do sothing useful...
- }
- else
- {
- // this is my current field value
- var str_value = fields[i].GetValue(job_in);
- // this is my current filed name
- var field_name = fields[i].Name;
- // I got stuck here :(
- // I need to save (copy) data "str_value" from job_in.field_name to job_out.field_name
- // HELP!!!
- }
- }
- return job_out;
- }
- public static void MapAllFields(object source, object dst)
- {
- System.Reflection.FieldInfo[] ps = source.GetType().GetFields();
- foreach (var item in ps)
- {
- var o = item.GetValue(source);
- var p = dst.GetType().GetField(item.Name);
- if (p != null)
- {
- Type t = Nullable.GetUnderlyingType(p.FieldType) ?? p.FieldType;
- object safeValue = (o == null) ? null : Convert.ChangeType(o, t);
- p.SetValue(dst, safeValue);
- }
- }
- }
- fields[i].SetValue(job_out, str_value);
Add Comment
Please, Sign In to add comment