static void Performance(int count) { var persons = GetPersons(count); SimpleDataMapper.RemoveMap <Person, User>(); var map = SimpleDataMapper.Resolve <Person, User>(); map.Add <Person, User>("EyeColor", "SetEyeColor"); map.Complex <Person, User>(p => p.Company, u => u.Employer); var sw = System.Diagnostics.Stopwatch.StartNew(); for (int i = 0; i < count; i++) { var user = SimpleDataMapper.Map <Person, User>(persons[i]); } sw.Stop(); Console.WriteLine("\nMapping {0} instances took {1} ms. Average = {2}\n", count, sw.ElapsedMilliseconds, sw.Elapsed.TotalMilliseconds / count); }
static void Main(string[] args) { //// source instance Person person = new Person() { Name = "Mickey Mouse", Age = 85, EyeColor = "Blue", Sex = "Male", Company = new Company() { Name = "Disney" } }; //// destination instance User user; //// default map to map between properties with same name var map = SimpleDataMapper.Resolve <Person, User>(); //// conversion user = SimpleDataMapper.Map <Person, User>(person); Compare(person, user); //// add mapping between properties with different name, but same meaning map.Add <Person, User>(p => p.Sex, u => u.Gender); //// conversion user = SimpleDataMapper.Map <Person, User>(person); Compare(person, user); //// map property to setter method map.Add <Person, User>("EyeColor", "SetEyeColor"); //// conversion user = SimpleDataMapper.Map <Person, User>(person); Compare(person, user); //// ignore mapping map.Ignore <User>(u => u.Age); //// conversion user = SimpleDataMapper.Map <Person, User>(person); Compare(person, user); //// unignore map.Unignore <User>(u => u.Age); user = SimpleDataMapper.Map <Person, User>(person); Compare(person, user); //// complex map.Complex <Person, User>(p => p.Company, u => u.Employer); user = SimpleDataMapper.Map <Person, User>(person); Compare(person, user); //// remove map.Remove("Company"); user = SimpleDataMapper.Map <Person, User>(person); Compare(person, user); //// performance Performance(1000); Console.ReadKey(); }