C# 相等名称空间/不同项目中的对象转换

C# 相等名称空间/不同项目中的对象转换,c#,C#,如何转换另一个项目/命名空间(例如XXX.CC)中的同一对象中的对象(例如MMM.CC) 两个对象(DC)相同。A(MMM.CC)是DLL,另一个(XXX.CC)是在另一个项目(WEB服务)中实例化的引用的MMM.CC 我做了如下尝试: 在DLL中,我调用另一个项目(如果MMM.CC,则WEB服务具有自己的DLL引用),并返回一个类似于MMM.CC的对象 XXX.CC xc = new XXX.CC(); // create an instance of webservice. MMM.CC m

如何转换另一个项目/命名空间(例如XXX.CC)中的同一对象中的对象(例如MMM.CC)

两个对象(DC)相同。A(MMM.CC)是DLL,另一个(XXX.CC)是在另一个项目(WEB服务)中实例化的引用的MMM.CC

我做了如下尝试:

在DLL中,我调用另一个项目(如果MMM.CC,则WEB服务具有自己的DLL引用),并返回一个类似于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;
或:

或:

我不知道我是否清楚,但DLL和在WEBSERVICE中,两个CC对象都是相同的,但因为它们在不同的名称空间中,所以给出了转换错误

甚至尝试过:

mc = (MMM.CC) xc;

但不转换。

您不能。NET不支持这种类型的类型转换

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

有一些库可以使这变得简单和自动化,但这往往是矫枉过正

两个对象(DC)相同

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

因此,您将无法“仅强制转换它们”,您必须编写一个能够手动将一种类型转换为另一种类型的方法

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.
mc = (MMM.CC) xc;