
两种选择;最简单的(但给出奇数的xml)是:
XmlSerializer ser = new XmlSerializer(typeof(AList), new Type[] {typeof(B), typeof(C)});<AList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <ListOfBs> <B /> <B xsi:type="C" /> </ListOfBs></AList>
更为优雅的是:
XmlAttributeOverrides aor = new XmlAttributeOverrides();XmlAttributes listAttribs = new XmlAttributes();listAttribs.XmlElements.Add(new XmlElementAttribute("b", typeof(B)));listAttribs.XmlElements.Add(new XmlElementAttribute("c", typeof(C)));aor.Add(typeof(AList), "ListOfBs", listAttribs);XmlSerializer ser = new XmlSerializer(typeof(AList), aor);带有示例输出:
<AList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <b /> <c /></AList>
无论哪种情况,您都 必须 缓存并重新使用该
ser实例。否则您将因动态编译而流失内存。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)