XML参数?

XML parameters?

我在将 XML 强制转换为 SOAP 服务中的 C# 对象时遇到了问题(我认为)。 鉴于此 XML 片段:

<Weasleys>
  <Child>
    <Name>Ron</Name>
    <Age>11</Age>
  </Child>
  <Child>
    <Name>Fred</Name>
    <Age>13</Age>
  </Child>
  <Child>
    <Name>George</Name>
    <Age>13</Age>
  </Child>
</Weasleys>

我有对象

public class Weasley
{
  public List<Child> Weasleys {get; set;}
}

public class Child
{
  public string Name {get; set;}
  public string Age {get; set;}
}

我的方法(意译)是GetPeople(Weasley input)。这有效(我正在使用 SoapUI 进行测试)

我的问题是,如果我将 XML 更改为:

<Weasleys>
  <Child Name="Ron" Age="11" />
  <Child Name="Fred" Age="13" />
  <Child Name="George" Age="13" />
</Weasleys>

如何更改我的对象以适应它? (对于当前对象,我得到 Child 的 3 个实例,其中 NameAgenull)。

N.B。该对象和 XML 是更大整体的一部分,并且已更改元素以保护无辜者:)

您需要以这种方式将姓名和年龄定义为 XML 属性:

public class Child
{
  [XmlAttribute(AttributeName = "Name")]
  public string Name {get; set;}
  [XmlAttribute(AttributeName = "Age")]
  public string Age {get; set;}
}

已排序
更改了接受 XmlNode 的方法[] 让我可以正确处理它

真有趣!