【问题标题】:Extension to serialize read-only properties用于序列化只读属性的扩展
【发布时间】:2014-04-02 11:06:11
【问题描述】:

我正在编写一个允许序列化多维数组的简单扩展。在内部,我将 XmlSerializer 用于数组项,但它不适用于只读属性。那么如何使用XmlSerializer(或像DataContractSerializer 这样的其他类)在XML 中对它们进行序列化,而无需修改类以具有这些属性。我的意思是我有方法Serialize<T>(T obj),我可以为任何T 序列化它,甚至像KeyValuePair<T,U> 这样具有只读属性的结构。

【问题讨论】:

    标签: c# .net serialization access-modifiers


    【解决方案1】:

    XmlSerializerDataContractSerializer 无法做到这一点。

    使用DataContractSerializer,可以序列化/反序列化private甚至readonly字段/属性,但是每个要序列化的字段/属性都需要标记DataMember属性,所以不能使用对于任意类型,例如KeyValuePair<K,V>

    除了使用 XML API(例如 Linq2Xml)和反射手动完成之外,您还可以查看 sharpserializer,它似乎完全符合您的要求。

    【讨论】:

    • 我能够序列化多维数组,我只是想逃避一个情况,当序列化程序不序列化只读属性时。
    • 对不起,我误解了你的问题。编辑答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-11
    • 2013-03-12
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多