I have the following xml:
<ArrayOfString>
<stringValues>
<stringvalue>teste1</stringvalue>
<stringList>
<stringText>stringList1</stringText>
</stringList>
</stringValues>
</ArrayOfString>
My contract is as following:
[KnownType(typeof(StringList))]
[DataContract(Name = "stringValues", Namespace = "")]
public class StringValues
{
[DataMember(Name="stringvalue",Order=1)]
public string stringvalue { get; set; }
[DataMember(Name="stringList",Order=2)]
public StringList stringList { get; set; }
}
[CollectionDataContract(ItemName = "stringText")]
public class StringList : List<string>
{
}
And the code used to deserialize is:
var testexml = @"<ArrayOfString>
<stringValues>
<stringvalue>teste1</stringvalue>
<stringList>
<stringText>stringList1</stringText>
</stringList>
</stringValues>
</ArrayOfString>";
XmlDictionaryReader stringsReader = XmlDictionaryReader.CreateDictionaryReader(XmlReader.Create(new StringReader(testexml)));
DataContractSerializer ArrayOfString = new DataContractSerializer(typeof(List<StringValues>), "ArrayOfString", "");
var strings = ArrayOfString.ReadObject(stringsReader);
When i run it the stringList property should have one item, but instead it has zero items. I belive, there is something wrong in my contract. Can anyone help?
Thanks in advance!
No comments:
Post a Comment