Assuming you want a direct mapping from one type to the other, something like this should work:
static void CreateDynamicTestClassMap(IMapperConfigurationExpression configuration)
{
var dynamicObject = new { Name = default(string), Age = default(int) };
var map = configuration.CreateMap(dynamicObject.GetType(), typeof(testclass));
map.ForMember(nameof(testclass.letter), o => o.MapFrom(nameof(dynamicObject.Name)));
map.ForMember(nameof(testclass.frequency), o => o.MapFrom(nameof(dynamicObject.Age)));
}
...
var config = new MapperConfiguration(CreateDynamicTestClassMap);
config.AssertConfigurationIsValid();
var mapper = config.CreateMapper();
var listOfTestClass = GetList().Select(mapper.Map<testclass>).ToList();
NB: The
CreateDynamicTestClassMap
method will need to be in the same assembly as your
GetList
method, otherwise the two dynamic types will not match.