首页 新闻 搜索 专区 学院

不知道具体属性的实体类相互拷贝属性值

0
[已解决问题] 解决于 2012-08-26 20:41

我有两个Model类...如:DogModel和CatModel.

具体的公有属性我不知道......

 

现在想实现一种这样的效果:

我从网络上获取了一个DogModel的实体:myDog和一个CatModel的实体:myCat.

我想把从myCat中拷贝属性的值赋值到MyDog中.如果myDog中有形同的属性名.如:myDog.Name=myCat.Name;  (注意:两个Model类...如:DogModel和CatModel.

具体的公有属性我不知道......)

程序员最后都要送外卖的主页 程序员最后都要送外卖 | 菜鸟二级 | 园豆:229
提问于:2012-07-27 11:14
< >
分享
最佳答案
1

用AutoMapper吧。

奖励园豆:5
Launcher | 高人七级 |园豆:45045 | 2012-07-27 11:50
其他回答(2)
0
        void CopyProperty<TSource, TTarget>(TSource source, TTarget target)
        {
            var flags = BindingFlags.Public | BindingFlags.Instance;
            Func<PropertyInfo, bool> filter = p => p.CanRead && p.CanWrite;

            var sourceProperties = typeof(TSource).GetProperties(flags).Where(filter);
            var targetProperties = typeof(TTarget).GetProperties(flags).Where(filter);

            foreach (var property in targetProperties)
            {
                var s = sourceProperties.SingleOrDefault(p => p.Name.Equals(property.Name) 
&& property.DeclaringType.IsAssignableFrom(p.DeclaringType)); if (s != null) { property.SetValue(target, s.GetValue(source, null), null); } } }
水牛刀刀 | 园豆:6350 (大侠五级) | 2012-07-27 13:33

强大

0

http://www.cnblogs.com/lenic/archive/2012/08/20/2647892.html

这个当中有个convert的方法,还不错啊。

chenping2008 | 园豆:9836 (大侠五级) | 2012-08-21 19:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册