2016-12-16 261 views
0

這可能看起來像一個愚蠢的問題,但我有理由想要將一個對象A中的一堆屬性複製到另一個B中,其中A是一個子集B. 。這意味着寫出在C#代碼的時候,就很難確定我已經實際複製事事休A.將C#變量賦值給另一個變量,avar.GiveTo(something.else)

A. < =智能感知給了我一切都在A,我不關心。

B. < =偉大的,但我不能以這樣的方式完成的打字,它最終會是這樣的: A.prop = B.similarProp

所以這是一個挑剔的事情,我只是想知道如何編寫擴展方法,將做到這一點(我有字面上不知道。)

B.something.GiveTo(A.somethingelse)

我不想使用AUTOMAPPER,因爲它會由於B誤差的一個超集A在這種情況下。

我不想問如何映射對象的屬性。我在問怎樣寫一些能讓我輸入的東西A.propa.ExtensionMethodGiveTo(b.propa)

+1

您是否嘗試過某些東西,如果是的話發佈您的進行中的代碼 –

+0

您想將A的相似屬性的值複製到B? – Prajwal

+0

@Prajwal是的問題是這樣說的。 –

回答

0

你可以得到類型爲A的屬性列表。 (How to get the list of properties of a class?

創建一個通用方法來鍵入AB。 (Generic Methods (C# Programming Guide)

然後比較屬性類型和名稱,如果兩者都相同,則可以將其分配給傳遞的實例。

+0

你有沒有讀過這個問題。 – Worthy7

+0

我做到了。到目前爲止,我堅持這個答案。如果這不符合您的預期,請編輯您的問題並多解釋一下。請檢查http://stackoverflow.com/help/how-to-ask – Prajwal