private void Execute() { foreach (var fieldset in _model) { var alias = $"{_dataType}.{fieldset.Alias}"; var currentType = Populate.GetRegisteredType(alias, _type); var typeHierarchy = currentType.GetHierarchy(); var archetypeModel = Activator.CreateInstance(currentType) as T; foreach (var type in typeHierarchy) { var mapping = Populate.GetMappingForType(type); if (mapping == null) { continue; } var rules = mapping.GetRules(); foreach (var rule in rules) { rule.Execute(_session, _options, archetypeModel, type, fieldset); } } _results.Add(archetypeModel); } }