2014-03-01 50 views
0

我正在写一个简单的扩展,允许序列化多维数组。 Internaly我为数组项目使用XmlSerializer,但它不适用于只读属性。那么如何在不修改具有此属性的类的情况下使用XmlSerializer(或其他类如DataContractSerializer)在XML中序列化它们。我的意思是我有方法Serialize<T>(T obj),我可以序列化它的任何T,甚至结构像KeyValuePair<T,U>与R/O属性。扩展序列化只读属性

回答

0

这不可能与XmlSerializerDataContractSerializer

使用DataContractSerializer,可以序列化/反序列private,甚至readonly场/属性,但是每个字段/属性序列化需要被打上DataMember属性,因此它不能被用于任意类型,如KeyValuePair<K,V>

除了用手工使用XML API(例如Linq2Xml)和反射来完成它,你可以看看sharpserializer这似乎完全是你要完成的。

+0

我能序列化多昏暗的数组,我只是想逃避一个情况,当串行器不序列化只读属性。 –

+0

对不起,我误解了你的问题。编辑答案。 – alsed42