相同命名空间/不同项目中的对象转换
本文关键字:对象 转换 命名空间 项目 | 更新日期: 2023-09-27 18:14:29
如何转换对象(例如mm . cc),但在同一对象是在另一个项目/命名空间(例如XXX.CC)?
两个对象(DC)是相同的。其中一个(MMM. cc)是DLL,另一个(XXX.CC)是MMM。引用的CC实例化在另一个项目(WEB SERVICE)
我试了如下:
在DLL中,我调用另一个项目(WEB SERVICE,它有自己的DLL的引用,如果MMM. cc)并返回一个类似于MMM的对象。CC
XXX.CC xc = new XXX.CC(); // create an instance of webservice.
MMM.CC mc = new MMM.CC (); // create an instance of the dll.
xc.Return_object_XXXCC (); // WebMethod that returns an object of type XXX.CC.MMM.CC.
mc = xc;
OR:
XXX.CC xc = new XXX.CC(); // create an instance of webservice.
MMM.CC mc = new MMM.CC (); // create an instance of the dll.
mc = xc.Return_object_XXXCC (); // WebMethod that returns an object of type XXX.CC.MMM.CC.
OR:
XXX.CC xc = new XXX.CC(); // create an instance of webservice.
MMM.CC mc = new MMM.CC (); // create an instance of the dll.
mc = (MMM.CC)xc.Return_object_XXXCC (); // WebMethod that returns an object of type XXX.CC.MMM.CC.
我不知道我是否清楚,但是DLL和WEBSERVICE中,两个CC对象都是相同的,但是因为它们在不同的命名空间中都给出了转换错误。
甚至尝试:
mc = (MMM.CC) xc;
不能,. net不支持这种类型转换。
您需要将其中一个映射到另一个,复制XXX的状态。CC实例到MMM。CC实例。
有一些库可以使这变得简单和自动,但这通常是多余的。
两个对象(DC)是相同的
不,完全限定类型名不一样,因为名称空间不同,所以技术上两个对象都有不同的类型。
所以你不能"直接转换它们",你必须编写一个方法,能够手动将一种类型转换为另一种类型。