2015-09-25 69 views
-3

如何将对象(例如MMM.CC)转换为另一个项目/名称空间中的相同对象(例如XXX.CC)?平等名称空间/不同项目中的对象转换

两个对象(DC)都是相同的。 A(MMM.CC)是DLL和其他(XXX.CC)是另一个项目(Web服务)实例参考的MMM.CC

我试过如下:

DLL中我做一个调用和返回另一个项目(其中有自己的DLL,如果MMM.CC的引用Web服务)相似的对象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; 

但不转换。

+0

你不能那样做。 – SLaks

回答

1

你不能。 .NET不支持这种类型转换。

您需要将一个映射到另一个,将XXX.CC实例的状态复制到MMM.CC实例中。

有些库可以实现这种简单和自动化,但这往往是矫枉过正的。

0

两个对象(DC)是相同的

没有,完全限定的类型名称是不一样的,因为命名空间是不同的,所以在技术上这两个对象有不同类型。因此,您将无法“仅投射它们”,您必须编写一种方法,可以将一种类型手动转换为另一种类型。

相关问题