XML 문자열 역 직렬화 할 수 없습니다 : 내가 뭘 아래 나는대로 역 직렬화하기 위해 노력하고있어 다음 XML은 다음하지만 오류 얻을 수있다
이 내 코드There was an error reflecting type 'System.Collections.Generic.List`1[MyApp.Models.Field]
public class FieldList
{
[XmlArray("fields")]
[XmlArrayItem("field")]
List<Field> Fields { get; set; }
}
public class Field
{
[XmlAttribute("type")]
public string Type { get; set; }
[XmlAttribute("required")]
public bool Required { get; set; }
[XmlAttribute("label")]
public string Label { get; set; }
[XmlAttribute("name")]
public string Name { get; set; }
[XmlElement("option")]
[JsonProperty("values")]
public List<Option> Options { get; set; }
}
public class Option
{
[XmlAttribute("label")]
public string Label { get; set; }
[XmlAttribute("value")]
public string Value { get; set; }
[XmlAttribute("selected")]
public bool Selected { get; set; }
/// <remarks/>
[XmlIgnore()]
public bool SelectedSpecified { get; set; }
[XmlText]
public string Text { get; set; }
}
var xml = @"<?xml version=""1.0"" ?>
<form-template>
<fields>
<field type=""select"" required=""true"" label=""Cars"" name=""cars"" >
<option label=""Toyota"" value=""Toyota"" selected=""true"">Toyota</option>
<option label=""Nisan"" value=""Nisan"" >Nisan</option>
</field>
</fields>
</form-template>";
var serializer = new XmlSerializer(typeof(FieldList), new XmlRootAttribute("form-template"));
var stringReader = new StringReader(xml);
var xmlFields = (FieldList)serializer.Deserialize(stringReader);
을 잘못된?
* UPDATE *
public List<Option> Options { get; set; }
수정 오류로
public IEnumerable<Option> Options { get; set; }
을 변경 아래의 코멘트를 같이
하지만 지금은 아무것도 직렬화되지 않습니다 - 변수 xmlFields
가 비어 ??? 특정 노드에서 읽어야합니까, 아니면 중요하지 않아야합니까?
은'InnerException'는 단서를 포함해야합니다. –
@ManfredRadlwimmer가'IEnumerable
다음 속성은 인터페이스이기 때문에 가장 좋은 추측입니다. 공개 IEnumerable