У меня есть класс с набором свойств для например .:Карта двух различных объектов с разными свойствами
class Employee
{
string Id {get ; set ; }
string Name {get ; set ; }
string Lastname {get ; set ; }
string email {get ; set ; }
}
У меня есть еще один объект - я получаю данные из какой-либо третьей стороной в строке API. Я использовал NewtonSoft Json для десериализации их. Их структура выглядит примерно так:
class ThirdPartyEmployee
{
string EmpId {get ; set ; }
string fName {get ; set ; }
string LName {get ; set ; }
string emailID {get ; set ; }
string Phonenumber {get ; set ; }
}
Для простоты - я не могу изменить свойство обоих классов.
Теперь вопрос, когда я получаю объект JSON,
List<Employee> obj1 = new List<Employee>();
List<ThirdPartyEmployee> obj2 = JsonConvert.DeserializeObject<List<ThirdPartyEmployee>>(JsonConvert.SerializeObject(responseString));
Теперь мне нужно бросить obj2
в obj1
. Хотя я могу сделать это вручную, говоря:
foreach (var currObj2 in obj2)
{
Employee employee = null ;
employee .Id = currObj2 .EmpId;
employee.Name = currObj2.fName;
employee.Lastname = currObj2.LName;
employee.email = currObj2.emailID;
obj1.add(employee);
}
Есть ли более простой способ сделать это с помощью некоторого механизма отображения?
Хотя я привел более простой пример, реальный сценарий намного сложнее с под-объектами и обладает большим количеством свойств.
Создать конструктор Employee и передать объект ThirdPartyEmployee как этот 'государственный служащий (ThirdPartyEmployee tpeObj) {/ * Присвоить в этом конструктору * /}' – GSP
вы можете посмотреть automapper, [руководство по началу работы с автоматом] (https://github.com/AutoMapper/AutoMapper/wiki/Getting-started) –
Я думаю, вы должны добавить тег json.net. Здесь литье выполняется с помощью json-преобразователя. поэтому я думаю, что это должно принадлежать тегу – Eldho