所以我有如下所示的 XML:
<a>
<b c="1" ></b>
<b c="2" ></b>
<b c="3" ></b>
<b c="4" ></b>
</a>
我想使用 DataContractSerializer 在 wp7 上反序列化它。
我遇到了一些意见,如果没有一些技巧,比如将这个 XML 包含在额外的标签中以将 < a > 从根级别向下推,我就不可能做到这一点。
这是真的吗?
根据您的要求,我正在添加一些代码
课程:
[KnownType(typeof(B))]
[DataContract(Namespace = "")]
public class A:List<B>
{
[DataMember]
public List<B> B
{
List<B> _b = new List<B>();
get { return _b; }
set { _b = value; }
}
}
[DataContract(Namespace = "")]
public class B
{
[DataMember]
public string c = "foo";
}
反序列化:
var serializer = new DataContractSerializer(typeof(A));
var o = serializer.ReadObject(SomeResponseStream);
还有很多很多其他的变体。
顺便说一句 - 这种类的排列将被序列化为 XML,如下所示:
<a>
<b>
<b c="1" ></b>
<b c="2" ></b>
<b c="3" ></b>
<b c="4" ></b>
</b>
</a>
注意额外的、不需要的 < b > 级别