2010-07-12 87 views
2

我需要XML序列化某些類,它們在某些情況下不遵守規則和指導原則,這是爲了使內置序列化工作所需要的。這包括屬性,它們是接口類型和沒有設置器的屬性。XML序列化 - 處理特殊情況

我知道如何實現IXmlSerializable,但它可能是很多工作;因爲大多數屬性不需要特殊處理。有什麼辦法讓我只編寫代碼來處理這些「特殊屬性」,並讓標準XML序列化程序序列化它知道如何序列化的屬性?

此外,歡迎您提供有關開源庫或類似工具的建議,它們可以更好地將對象序列化爲XML,而無需太多自定義代碼。

回答

1

有一個工具叫做Automapper這個工具將兩種類型相互映射。對於你的問題,你可以建立一個標準的符合類型,並將不標準的映射到這個類型。大多數屬性將與automapper映射。特殊的你可以用你自己的方法進行映射。

首先,你必須設置你的映射:

Mapper.CreateMap<ITestSequence, TestSequence>(); 
Mapper.CreateMap<ITestBlock, TestBlock>(); 

然後映射你的opjects:

Mapper.Map(srcTb, dstTb); 

這將設置所有公共屬性。其餘的你可以自己做。