日期:2014-05-17  浏览次数:20902 次

两个完全相同的类集合,但在库中和主应用的的名称不同,请问该如何相互间直接赋值
在DLL库中有一个类 A

    public class A
    {
        public int MeetingID { get; set; }
        public string MeetingName { get; set; }

        public string MeetingImg { get; set; }

    }

在主应用中调用了 DLL库,但同时也定义了类 B

    public class B
    {
        public int MeetingID { get; set; }
        public string MeetingName { get; set; }

        public string MeetingImg { get; set; }

    }

A 和 B 完全一样,

在主应用中定义了List<B> BB 并且赋值了,在传入到DLL时出现异常

请问 如何将List<A> AA 赋值给 List<B> BB

直接 AA = BB  出现异常

谢谢

------解决方案--------------------
楼主可以看看这篇文章,http://blog.csdn.net/qq873113580/article/details/7981474
直接赋值是不可以的,但是你想要把值转换的话,需要自己写点转换代码,之前那片文章就是转换相同的属性类,只需要第一个方法就OK了,其他的可以不用,就是你传2个类过去,把其中一个类的值赋值到另一个类里面去
------解决方案--------------------
这个是不好直接赋值的,小心的人会自己手动映射,不怎么在乎的人嘛,可能会使用反射

当然这东西也有写好的代码,比如codeplex里有个叫AutoMapper的开源类

http://automapper.codeplex.com
------解决方案--------------------
B和A不是同一个对象(不在同一个命名空间),List<A> 和 List<B>怎么能赋值呢