Automapper не привязывает общий список - PullRequest
0 голосов
/ 26 мая 2018

Я использую Automapper для сопоставления неизвестного (неизвестное свойство) объекта JSON с известным объектом (модель) В c # (с использованием профилей), но не могу связать получение пустого списка.

Модель

public class Student
        {
                public string Name {get;set;}
                public string Age{get;set;}
                  public string RoleId{get;set;}

        }

JSON

var jsonText = @"
                       [ {
                            ""Code"" : ""Class786"",
                            ""HighLevelClassOfBusinessCode"" :3
                        },

                        {
                            ""Code"" : ""Class789"",
                            ""HighLevelClassOfBusinessCode"" :79
                        }
                        ]

                ";

AUTOMAPPER:

      // its working when loop through list mapped one by one but i need list
    public List<Student> GetNewList<Student>(JArray JsonData)
    {

        List<Student> dto = new List<Student>();
        var config = new MapperConfiguration(cfg =>
        {
            cfg.CreateMap<JArray, List<Student>>();
            cfg.AddProfile<Student>();
        });
        var mapper = config.CreateMapper();

        List<Student> newData = mapper.Map<List<Student>>(JsonData);
       //List newData which are getting is empty 

        // if i used json object in loop then working fine
        //foreach (var item in JsonData)
        //{
        //    T newData= mapper.Map<T>(item);
        //    dto.Add(newData);
        //}
        return dto;
    }

Профиль: которые созданыдля правила отображения

public class Student: Profile
        {
            public Student()
            {
                CreateMap<JObject, Student>()
                    .ForMember("Name", cfg => { cfg.MapFrom(jo => jo["Code"]); })
                    .ForMember("Age", cfg => { cfg.MapFrom(jo => jo["Code"]); })
                    .ForMember("RoleId", cfg => { cfg.MapFrom(jo => jo["HighLevelClassOfBusinessCode"]); });
            }

        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...