Windows X上的[XmlAnyAttribute]作为XmlAttribute返回的内容是什么?

时间:2014-06-05 11:26:41

标签: .net xml windows-phone-8 windows-phone xml-serialization

我在MSDN上问了这个问题:http://social.msdn.microsoft.com/Forums/en-US/01017fbd-e7ab-4f9a-922b-228bd6158363/what-does-the-xmlanyattribute-return-on-windows-phone-as-xmlattribute-is-removed?forum=wpdevelop

根据MSDN文档(http://msdn.microsoft.com/en-us/library/windowsphone/develop/system.xml.serialization.xmlanyattributeattribute(v=vs.105).aspx):

XmlAnyAttributeAttribute"指定成员(返回XmlAttribute对象数组的字段)可以包含任何XML属性。"然后"将XmlAnyAttributeAttribute应用于返回XmlAttribute或XmlNode对象数组的字段。"

但是,Windows Phone上没有XmlAttribute和XmlNode类型。

我正忙着将.NET 4.0移植到Windows Phone,但它会执行一些XML反序列化步骤。我希望做最小的代码更改,然后在任何重大更改之前让单元测试通过。

有没有办法做到这一点,还是需要另一种方式?

更新

我正在寻找XmlDocument,XmlElement版本的XmlAttribute。这是实际返回的内容。

拿这个XML:

<Group xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
       xmlns:xsd="http://www.w3.org/2001/XMLSchema"
       GroupType = 'Technical' GroupNumber = '42' GroupBase = 'Red'>
    <GroupName>MyGroup</GroupName>
</Group>

和这种类型:

public class Group
{
    [XmlAnyAttribute]
    public XmlAttribute[] UnhandledAttributes { get; set; }
    [XmlElement]
    public string GroupName { get; set; }
}

和这段代码:

XmlSerializer ser = new XmlSerializer(typeof(Group));
Group obj = ser.Deserialize(new StringReader(xmlString));

使用控制台应用程序(net45),UnhandledAttributes数组属性将包含3个项目,每个项目对应<Group>上的一个属性。

我将为Windows Phone使用哪种类型的阵列?

0 个答案:

没有答案