2012-09-17 156 views
0

我不太確定,我應該考慮不使用反思。 目前我正在努力處理以下情況:我應該考慮反思

兩個類之間的映射是通過反射(字典屬性)完成的。 在一個類中,我們有一個dictionary<string, object>,而在另一個類中,我們具有與字典的鍵相同名稱的屬性。然後我起訴反思以獲得財產並設置它。

你看,也有昂貴的鑄件的所有對象。有時我必須做一個自定義演員,因爲類型是不同的。

反射的唯一巨大優勢是「簡單」映射,幾行少一些類。反射和正常的財產集合方法都是可能的。

注意:我的問題是相當的「如何」解決這個問題,從設計的角度更多。

如果您能給我一些建議,我們將不勝感激。

+0

這聽起來像你已經有了,考慮到你已經實現了它的解決方案。我認爲你應該考慮[AutoMapper](https://github.com/AutoMapper/AutoMapper)。 – James

+0

您將需要提供有關實際潛在問題的更多詳細信息。這項具體任務只能通過反思來完成,但是可能有辦法解決潛在的問題,而不需要首先這樣做。 – Servy

+0

看起來你正在重塑一個方向盤。 [AutoMapper](http://automapper.codeplex.com/),也許? –

回答

1

我的問題是更多的從設計的角度來看,相當的how to解決問題

要回答你的問題,一般你會使用反射來進行動態屬性映射這樣的。然而,在實踐中反射可能很沉重(正如你開始注意到的那樣)。正如你可能猜到的那樣,這個問題很常見,並且已經有圖書館爲你完成繁重的工作,例如AutoMapper

只要將Dictionary映射到一個對象上,我從來沒有使用過AutoMapper來處理這樣的事情,因此我無法評論它是否支持它(我猜它可能可以,它非常靈活)。如果你的Dictionary只是你自定義映射的橋樑,那麼如果你切換到使用AutoMapper你可以完全擺脫這一點。

相關問題