我有一個時髦的場景,感謝我們使用.NET 4和C#4,似乎在包裏。事實證明,解決方案更復雜,並且可能不存在一些完全自定義的解決方案。是否可以使用特定的xml名稱空間(xmlns)將動態對象圖序列化爲xml?
簡而言之,我需要序列化一個動態對象,它具有一組固定的必需屬性和一組可選屬性。根元素必須在xmlns屬性中包含一個自定義xml名稱空間,並且某些子對象可能需要使用不同的xml名稱空間。我們的第一種方法是從DynamicObject
中派生出一個自定義類。這允許我們添加一個XmlRootAttribute
並指定一個名稱空間。除了在動態屬性上定義自定義命名空間的複雜性外,即使這種簡單的方法似乎也不起作用。 XmlSerializer
儘管傳遞了一個dynamic
變量作爲序列化對象,但只是序列化硬編碼的屬性,並忽略該對象的任何動態方面。
我們一直在使用JsonFx 2.0,並決定嘗試一下。通過仔細改進我們的DynamicObject
衍生產品,我們能夠讓JsonFx 2.0序列化所有必需的內容,但它拒絕序列化任何xmlns屬性。
是否有某種方法將部分動態的對象序列化爲xml幷包含特定的命名空間?或者,這僅僅是一個必須定義一個任意複雜的對象圖的情況,選擇適合特定需求的圖,如動態派生的運行時?
似乎.NET 4的xml序列化故事在序列化動態對象時相當鬆懈。
您是否想出瞭解決此問題的不同解決方案?如果是這樣,如果你在這裏發佈它會很好。 :-) –
你可以試試這個解決方案:http://stackoverflow.com/questions/18951521/web-api-dynamic-to-xml-serialization/19085236#19085236 –