2017-01-13 79 views
-3

我有兩個DLL是dllA和dllB。如何將一個dll中存在的一個對象轉換爲另一個dll的同一對象?

我在下面提到的兩個dll中都有相同的對象。

class OrderObect 
{ 
    public string firstName {get;set;} 
    public string lastName {get;set;} 
} 

我從dllA發送列表到dllB。

我得到一個例外是無法將dllA.OrderObject列表轉換爲dllB.OrderObject列表。

那麼如何解決呢,謝謝:)

+0

如果B引用A和OrderObect被暴露,只需從B&A中刪除OrderObect並使用A.OrderObect。如果你希望它在兩個然後把它或一個接口在第三個大會,並有A&B參考。 –

回答

-1

爲什麼複製這些類?無論如何,如果屬性名稱相同,則可以使用反射並循環遍歷屬性將值從一個值複製到另一個值。 看看這篇文章知道如何實現這一點:here

+0

使用反射已知類型沒有意義。 – Clemens

+0

因爲他們是在兩個不同的程序集(也許是「移動」程序集)中,而今天的類可能相同,但明天可能不完全相同(複製同一個類的概念對我來說沒有意義,但無論如何...)不知道如何做到這一點,任何想法? – Creep

+2

'sourceList.Select(o => new B.OrderObject {...} ).ToList();' – Clemens

-1

由於蠕變說,如果兩個屬性是相同的,那麼你可以使用反射。如果使用類似express mapper的映射,可以稍微簡單一些:

+0

反對的任何理由?我的回答將做OP的想法,並提供解決問題的方法。 –

相關問題