나는 이것을 내 자신을 해결하려고 노력했지만 알지 못했습니다.
responseElementList의 배열을 포함하는 XML이 있습니다.
<responseElementList name="something">
<valueList name="NAT_TEXT">XXX</valueList>
<value name="XXX_MAIN">NONE</value>
<value name="XXX_SEC">NONE</value>
<value name="XXX_XXX">NO</value>
<value name="XXX">YES</value>
<value name="XXX_NET">NO</value>
</responseElementList>
그리고 나는 그것을 deserialize하려고합니다.
public class responseElementList
{
[XmlAttribute("name")]
public String name { get; set; }
[XmlElement("valueList")]
public ValueModel valueList { get; set; }
[XmlElement("value")]
public List<ValueModel> value { get; set; }
}
public class ValueModel
{
[XmlAttribute("name")]
public String name { get; set; }
[XmlText]
public String Value { get; set; }
}
이 역 직렬화로 항상 빈 목록이 나타납니다. (valueList는 잘 채워집니다)
역 직렬화가 표시되지 않으므로 무엇이 잘못되었는지 모르지만 다음은 작동합니다.
public class responseElementList
{
[XmlAttribute("name")]
public String name { get; set; }
[XmlElement("valueList")]
public ValueModel valueList { get; set; }
[XmlElement("value")]
public List<ValueModel> value { get; set; }
}
public class ValueModel
{
[XmlAttribute("name")]
public String name { get; set; }
[XmlText]
public String Value { get; set; }
}
public static T DeSerialize<T>(string xml)
{
T result = default(T);
using (TextReader reader = new StringReader(xml))
{
var ser = new XmlSerializer(typeof(T));
result = (T)ser.Deserialize(reader);
}
return result;
}
void Main()
{
var a = @"<responseElementList name='something'>
<valueList name='NAT_TEXT'>XXX</valueList>
<value name='XXX_MAIN'>NONE</value>
<value name='XXX_SEC'>NONE</value>
<value name='XXX_XXX'>NO</value>
<value name='XXX'>YES</value>
<value name='XXX_NET'>NO</value>
</responseElementList>";
var obj = DataHelper.DeSerialize<responseElementList>(a);
obj.Dump();
}
준다
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다