我的xml配置文件中有一个组件,它接受一个菜单项数组。这工作正常,每个菜单项都正确填充了其值。
它的值之一 chart 是一个复杂类型,它本身包含两个字符串和一个复杂类型列表。图表中的列表未正确填充,并且始终包含一个元素,该元素的属性全部设置为其默认值。
这是我的 xml 文件的参数部分:
<menuItems>
<array>
<item>
<id>1</id>
<chart>
<title>Chart Title</title>
<series>
<list>
<item>
<id>1</id>
<name>Series Title</name>
</item>
</list>
</series>
</chart>
</item>
</array>
</menuItems>
以及我的相关课程:
[Convertible]
public class QueryMenuItem
{
public int Id { get; set; }
public Chart Chart { get; set; }
}
[Convertible]
public class Chart
{
public string Title{ get; set; }
public IList<ChartSeries> Series { get; set; }
}
[Convertible]
public class ChartSeries
{
public int Id { get; set; }
public string Name { get; set; }
}
如何让温莎城堡正确填充系列列表?
对于仍在寻找解决方案的人...我已经删除了系列的节点,它的工作(检查 3.2.0.0):
<menuItems>
<array>
<item>
<id>1</id>
<chart>
<title>Chart Title</title>
<Series>
<item>
<id>1</id>
<name>Series Title</name>
</item>
<item>
<id>2</id>
<name>Series Title2</name>
</item>
</Series>
</chart>
</item>
</array>
</menuItems>
技术说明:似乎当它解析
因此,当我们在 中包装项目时,它会作为具有单个项目"list"的集合进行处理(并且没有带有 id 和 name 值的直接子节点,因此使用默认值)。
如果我们省略节点,则比ListHelper
城堡的来源。
并链接到GenericListConverter.cs。