using System.Collections.Generic; using System.Dynamic; namespace Teknik.Utilities { public static class ObjectHelper { public static dynamic Merge(object item1, object item2) { if (item1 == null || item2 == null) return item1 ?? item2 ?? new ExpandoObject(); dynamic expando = new ExpandoObject(); var result = expando as IDictionary; foreach (System.Reflection.PropertyInfo fi in item1.GetType().GetProperties()) { result[fi.Name] = fi.GetValue(item1, null); } foreach (System.Reflection.PropertyInfo fi in item2.GetType().GetProperties()) { result[fi.Name] = fi.GetValue(item2, null); } return result; } } }