【发布时间】:2009-08-20 07:46:35
【问题描述】:
我正在尝试与您通常做的相反的方式。
我有两个 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。 必须有更聪明的方法来做到这一点......有什么建议吗?
【问题讨论】: