首页 新闻 会员 周边 捐助

两个具有大部分相同属性的类,赋值

0
悬赏园豆:10 [已解决问题] 解决于 2012-07-08 09:53

类A

{

属性1,

属性2

......

属性100

}

类B

{

属性1,

属性2

......

属性100

属性101

}

两个具有大部分相同属性的类。类A的一个对象所有属性已经有值了,类B的对象属性还没值,怎么把A的所有属性的值赋值给B对应的属性?

QA龙的主页 QA龙 | 初学一级 | 园豆:162
提问于:2012-07-07 17:19
< >
分享
最佳答案
1

用AutoMapper(https://github.com/AutoMapper/AutoMapper)可以轻松搞定:

AutoMapper.Mapper.DynamicMap<类A, 类B>(类型A的对象);

 

收获园豆:6
dudu | 高人七级 |园豆:30778 | 2012-07-07 18:10

试了 可行

QA龙 | 园豆:162 (初学一级) | 2012-07-08 09:50
其他回答(4)
0

一项一项赋值。

悟行 | 园豆:12559 (专家六级) | 2012-07-07 17:47

就是一项一项复制嫌太累。才问这个问题啊

支持(0) 反对(0) QA龙 | 园豆:162 (初学一级) | 2012-07-07 23:29
0

B类继承A类不行么.?感觉你设计的时候有点问题吧.?

只会造轮子 | 园豆:2274 (老鸟四级) | 2012-07-07 17:55
0

设计的时候应该把共同的属性抽取出来作为一个基类,A类和B类继承基类,扩展自己的属性。

CN.programmer.Luxh | 园豆:362 (菜鸟二级) | 2012-07-07 23:21

已有的设计结构别人写的。不想去大改

支持(0) 反对(0) QA龙 | 园豆:162 (初学一级) | 2012-07-07 23:31
0

如果属性名字是一样的话可以直接使用反射进行对应赋值,如果有不同还需要做个属性的对应映射。建议可以写个公共的方法(扩展方法效果会好点,类似linq里面的cast方法),接收一个字典类型的参数,字典是两个对象的属性对应映射。

收获园豆:4
安卓粉丝 | 园豆:99 (初学一级) | 2012-07-08 01:11

感觉可行,不过有些麻烦,有时间写写试试

支持(0) 反对(0) QA龙 | 园豆:162 (初学一级) | 2012-07-08 09:52
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册