Я пытаюсь пойти противоположным путем, чем вы обычно делаете.
У меня есть два класса POCO A и B, где B наследуется от A
public class A
{
public int Foo { get; set; }
}
public class B : A
{
public int Bar { get; set; }
}
B представляет собой расширение A с дополнительной информацией.
Я начинаю с экземпляра класса A
A a = new A { Foo = 1 };
И затем я хотел бы расширить информацию в классе A с помощью дополнительной информации и получить конечный класс B. Я мог бы сопоставить каждое свойство из класса A со свойством в классе B, но это не имеет большого смысла для меня:
A a = new A { Foo = 1 };
B b = new B { Foo = a.Foo, Bar = 2 };
Или в конструкторе
A a = new A { Foo = 1 };
B b = new B(a) { Bar = 2 }; // Mapping of value Foo is done in constructor of object B
Результатом в любом случае является ручное отображение значений из объекта A в B.
Должен быть более разумный способ сделать это ... есть предложения?