关于Stackoverflow(.Net 2.0)的第一个问题:
因此,我尝试返回列表的XML,其中包含以下内容:
公共XmlDocument GetEntityXml()
{
StringWriter StringWriter=新StringWriter();
XmlDocument xmlDoc=新的XmlDocument();
XmlTextWriter xmlWriter=新的XmlTextWriter(stringWriter);
XmlSerializer serializer=新的XmlSerializer(typeof(List<;T>;);
列出<;T>;参数=GetAll();
serializer.Serialize(xmlWriter,参数);
字符串xmlResult=stringWriter.ToString();
LoadXml(xmlResult);
返回xmlDoc;
}
现在,这将用于我已经定义的多个实体
假设我想获得List<;的XML;Cat>
XML将类似于:
<;ArrayOfCat>;
<;Cat>;
<;名称>;汤姆</名称>;
<;年龄>;2</年龄>;
</Cat>;
<;Cat>;
<;名称>;鲍勃</名称>;
<;年龄>;3</年龄>;
</Cat>;
</ArrayOfCat>;
在获取这些实体时,有没有办法始终获取相同的根
例如:
<;实体>;
<;Cat>;
<;名称>;汤姆</名称>;
<;年龄>;2</年龄>;
</Cat>;
<;Cat>;
<;名称>;鲍勃</名称>;
<;年龄>;3</年龄>;
</Cat>;
</实体>;
还要注意,我不打算将XML反序列化回List<;Cat>
有一个非常简单的方法:
公共XmlDocument GetEntityXml<;T>;()
{
XmlDocument xmlDoc=新的XmlDocument();
XPathNavigator nav=xmlDoc.CreateNavigator();
使用(XmlWriter=nav.AppendChild())
{
XmlSerializer ser=新的XmlSerializer(typeof(List<;T>;),新的XmlRootAttribute(“TheRootElementName”);
序列化(写入程序、参数);
}
返回xmlDoc;
}