using System.Collections.Generic;
using AgileObjects.AgileMapper;
public string Name { get; set; }
public string[] PhoneNumbers { get; set; }
public IReadOnlyCollection<Specialty> Specialties { get; set; }
public int Id { get; set; }
public string Name { get; set; }
public static void Main()
dynamic source = new ExpandoObject();
source.PhoneNumbers_0 = "01234 567890";
source.PhoneNumbers_1 = "07890 654321";
source.Specialties_0_Id = 123;
source.Specialties_0_Name = "Emergency Medicine";
source.Specialties_1_Id = 456;
source.Specialties_1_Name = "Critical Care";
Doctor doctor = Mapper.Map(source).ToANew<Doctor>();
Console.WriteLine($"Doctor : {doctor.Name}");