2009-05-20 98 views
2

我有一個C#中的對象,讓我們說20個屬性,它是數據合同的一部分。我還有另一個具有類似屬性的業務實體,我想從響應對象中填充該實體。除了將一個對象的每個屬性分配給另一個對象的相應屬性之外,是否有任何方法可以做到這一點?從另一個具有相同屬性的對象創建對象

回答

1

如果您想以自動方式進行反射,只要屬性名稱在對象之間輕鬆映射即可,反射是一個選項。

1

Automapper值得一試,但最終我決定不適合我。這些工具的大問題是每次發生大量的運行時間開銷,並且每次發生映射時都會發生。我問了這個問題same question last week,最後我滾動了自己的解決方案(查看接受的答案)。你可以自由修改我提供的源代碼,我沒有聲稱它的有效性,適用性,性能,你破解它,保留碎片等等,但它運行良好爲我創建設計時對象到對象映射。

2

MiscUtil具有使用Expression(.NET 3.5)和靜態字段緩存編譯委託回答這個(PropertyCopy)(所以每次調用的成本可以忽略不計):

DestType clone = PropertyCopy<DestType>.CopyFrom(original); 

如果你是使用2.0,那麼反射可能是你的朋友。如果需要,您可以使用HyperDescriptor來提高性能。

相關問題