【问题标题】:How to deserialize XML attribute using DataContract in Windows Phone 7如何在 Windows Phone 7 中使用 DataContract 反序列化 XML 属性
【发布时间】:2011-11-21 08:30:20
【问题描述】:

我有一个带有这样一个节点的 XML 文档。

<channel id="3102" platform = "1" activation="30/11/2010" desactivation="">

我想使用 DataContract 和 Data Member 属性对其进行反序列化,这些属性可以很好地处理其属性,但不会对属性进行反序列化。

[DataContract(Namespace="")]
[XmlSerializerFormat]    
public abstract class Channel
{
    #region variables privadas

        [DataContract(Namespace="")]
[XmlSerializerFormat]    
//[KnownType(typeof(AudioChannel))]
//[KnownType(typeof(VideoChannel))]
public abstract class Channel
{
    #region variables privadas

    private DateTime _desactivation;
    private DateTime _activation;
    private int _platform;
    private int _id;
    ....
    #endregion

    #region Propiedades públicas

    [DataMember]
    [XmlAttribute(AttributeName="desactivation")]
    public DateTime Desactivation
    {
        get { return _desactivation; }
        set { _desactivation = value; }
    }

    [DataMember]
    [XmlAttribute(AttributeName="activation")]
    public DateTime Activation
    {
        get { return _activation; }
        set { _activation = value; }
    }

    [DataMember]
    [XmlAttribute(AttributeName="platform")]
    public int Platform
    {
        get { return _platform; }
        set { _platform = value; }
    }
    #endregion

    #region Propiedades públicas

    [DataMember]
    [XmlAttribute(AttributeName="desactivation")]
    public DateTime Desactivation
    {
        get { return _desactivation; }
        set { _desactivation = value; }
    }

    [DataMember]
    [XmlAttribute(AttributeName="activation")]
    public DateTime Activation
    {
        get { return _activation; }
        set { _activation = value; }
    }

    [DataMember]
    [XmlAttribute(AttributeName="platform")]
    public int Platform
    {
        get { return _platform; }
        set { _platform = value; }
    } ...

我与这些属性关联的属性未填充,我做错了什么?

提前感谢您提供的任何帮助。

【问题讨论】:

  • "flatform" 看起来很糟糕。
  • 请发布您用于反序列化 xml 的代码。

标签: c# xml windows-phone-7


【解决方案1】:

重复的问题。 How can you control .NET DataContract serialization so it uses XML attributes instead of elements? 你不能用 DataContractSerializer 做到这一点,但你应该使用 XmlSerializer 实现你所要求的。

【讨论】:

  • 我已经使用了,但无法实现我的目标,属性未填充。最后我使用了 XmlSerializer 而不是 DataContract。
  • 最后我必须使用 XMLSerializer,它对属性更灵活。感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 2014-09-08
  • 2011-06-19
  • 1970-01-01
  • 1970-01-01
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多