XML Serialization from MSDN:XML序列化VS反映在C#
序列化和反序列化對象 和從XML文檔。使用XmlSerializer可以控制 對象如何編碼爲XML。
反射提供了封裝組件, 模塊和類型的對象(的 型型)。您可以使用 反射動態地創建類型的實例 ,類型綁定到 現有對象,或從現有對象獲取類型 並調用它的 方法或訪問其字段和屬性 。如果您在代碼中使用 屬性,則可使用Reflection 訪問它們。
據我瞭解,我可以使用XML序列化在運行時創建對象?換句話說,假設我有一個數據庫,我可以在幾個表中定義我的「類」或「對象」。然後,我可以獲取對象數據的XML,然後在運行時創建對象。
我也可以將那些編譯爲庫的對象隨時可用,然後使用Reflection來訪問它的函數。
從您的理解來看,這兩個概念中的哪一個可以在犧牲最少性能的同時賦予最大的靈活性?如果您可以提供詳細的解釋和考慮事項以及可能的代碼示例,則可獲得獎勵積分。
這不是真的,你不能用Reflection創建新的類型。看看Reflection Emit。 – 2009-09-08 10:59:28
@Mark Seemann。 'System.Reflection.Emit'命名空間是我在寫「另一種方法」時想到的。我不認爲這是「正常」反射的一部分,而是編譯器和代碼生成器生成代碼而不是反思代碼的框架。你的「反思」的定義當然可能不同。 – 2009-09-08 12:04:09