2010-07-02 47 views
0

必須有一個更簡單的方法...Transfering性能與類似的定義

void TransferFrom(object obj) { 
     foreach(PropertyInfo prop in this.GetType().GetProperties()) { 
      prop.SetValue(this, obj.GetType().GetProperty(prop.Name).GetValue(obj, null), null); 
     } 
    } 

我有相同的對象定義兩個獨立的庫 - 所有屬性名稱/類型相同。上面的唯一方法是複製值還是有其他方法?我無法引用其中一個dll,並且將要複製的對象作爲對象傳遞,而不是獨立的類型。

回答

1

如果您可以控制兩個裝配,請看Data Contracts,這是專門設計用於執行您所描述的操作。

+0

我目前正在對此進行測試,希望能儘快作出回覆。謝謝。 – Buildstarted 2010-07-02 20:25:00

+0

數據契約概念非常強大,它是等同於接口的數據內容。一旦你掌握了基本知識,就不會難以啓動和運行。您需要閱讀的類是DataContractSerializer:http://msdn.microsoft.com/en-us/library/system.runtime.serialization.datacontractserializer.aspx – 2010-07-02 20:35:39

+0

值得注意的一個怪癖是,序列化程序不會調用你的對象的構造函數;這讓我第一次使用它的時候會有一個循環。 – 2010-07-02 20:37:53

1

AutoMapper靈活而強大。我不確定它是否會在不引用這兩種類型的情況下工作,但這是需要考慮的事情。

+0

謝謝,我發現通過類似於我的另一個問題的鏈接,但在這一點上,我正在尋找一個代碼唯一的解決方案。但會考慮它,如果它導致:) – Buildstarted 2010-07-02 20:24:38

0

我不知道,但如果在這兩個組件類具有相同類型的名稱,你可以嘗試通過序列化類型的實例從一個assemlby然後組裝B,在相同的流反序列化類型的實例使用XmlSerializer的。

相關問題