我有一个具有一组属性的类,例如:
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);
}
有没有更简单的方法使用某种映射机制来做到这一点?
虽然我给出了一个更简单的例子,但实际情况要复杂得多,有子对象和更多属性。
最佳答案
看看AutoMapper,我的 friend ,就是你要找的http://automapper.org/
这里有个老问题可能对你有帮助
关于c# - 映射具有不同属性的两个不同对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41819568/