相同命名空间/不同项目中的对象转换

本文关键字:对象 转换 命名空间 项目 | 更新日期: 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)是相同的

不,完全限定类型名不一样,因为名称空间不同,所以技术上两个对象都有不同的类型

所以你不能"直接转换它们",你必须编写一个方法,能够手动将一种类型转换为另一种类型。