Страницы

Поиск по вопросам

среда, 31 октября 2018 г.

Маппинг классов в C# по имени свойств?

Как на C# или через LINQ сделать такое:
class A { public string First { get; set; } public string Second { get; set; } //... //другие свойства };
class B { public string Third { get; set; } public string Four { get; set; } //... //другие свойства };
class Result { public string First { get; set; } public string Second { get; set; } public string Third { get; set; } public string Four { get; set; }
//... //другие свойства };
Как примапить A & B к Result?
Можно конечно написать вручную:
r.First = a.First; r.Second = a.Second; r.Third = b.Third; r.Four = b.Four;
Но так слишком много писать, хотелось бы по короче и побыстрее.


Ответ

Ответы-ссылки тут не приветствуются, но в этом случае без ссылки никак: AutoMapper
Package Manager:
Install-Package AutoMapper
C#:
Mapper.CreateMap(); Mapper.CreateMap();
var a = new A() { First = "1", Second = "2" }; var b = new B() { Third = "3", Four = "4" };
var res = Mapper.Map(a); Mapper.Map(b, res); // 1, 2, 3, 4
или с динамическим маппингом:
var a = new A() { First = "1", Second = "2" }; var b = new B() { Third = "3", Four = "4" };
var res = Mapper.DynamicMap(a); Mapper.DynamicMap(b, res);

Комментариев нет:

Отправить комментарий