public static void Map(this Facet source, Facet target) { var properties = source.GetType().GetProperties(BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.Instance); if (properties != null && properties.Any()) { foreach (var propertyInfo in properties) { propertyInfo.SetValue(target, propertyInfo.GetValue(source)); } } }