2017-02-24 17 views
0

我想反序列化两种不同类型的XML元素的一个列表中,因为我想保留订单反序列化不同类型的元素成的XmlElement的一个列表在C#中的

<Step name="Login to Account" > 
    <Action name="LoginToWebsite" type="Login" /> 
    <NewAction name="EnterTextInTextBox" type="SendKeysToTextBox" extraAttribute="Testvalue" /> 
</Step> 

目前我使用下列获得这两个动作在一个列表中,但我必须元素名称的第二个

[XmlRoot(ElementName = "Step")] 
public class WorkflowStep 
{  
    [XmlAnyElement("Action")] 
    public XmlElement[] Actions 
    { 
     get; 
     set; 
    } 
} 

改变NewAction(如上),而不是行动的XmlAnyElement将被绑定到“动作”元素的名字,我怎么可以改变支持两个不同的元素名称,但需要Deseri alized成一个阵列

回答

1

你想要的是

[XmlRoot(ElementName = "Step")] 
public class WorkflowStep 
{ 
    [XmlAnyElement("Action")] 
    [XmlAnyElement("NewAction")] 
    public XmlElement[] Actions 
    { 
     get; 
     set; 
    } 
} 
相关问题