簡體   English   中英

相同命名空間/不同項目中的對象轉換

[英]Object conversion in equal namespaces / different projects

如何轉換對象(例如 MMM.CC)但在另一個項目/命名空間(例如 XXX.CC)中的同一對象中?

兩個對象 (DC) 是相同的。 一個(MMM.CC)是DLL,另一個(XXX.CC)是在另一個項目(WEB SERVICE)中實例化的Reference的MMM.CC

我試過如下:

在 DLL 中,我調用另一個項目(WEB SERVICE,如果 MMM.CC 有自己的 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;

或者 :

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.

或者 :

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) 相同

不,完全限定的類型名稱不相同,因為命名空間不同,因此從技術上講,兩個對象都有不同的 type

因此,您將無法“僅轉換它們”,您必須編寫一種能夠手動將一種類型轉換為另一種類型的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM