C# 基于标记(例如starttag、EndTags)序列化XML文件
感谢您阅读本文;) 我想序列化一个xml文件,但是标记名会根据文件的不同而有所不同。我为每个配置文件都有一个类文件,这样我就可以基于哪个文件创建一个对象 我现在需要的是一种识别标记名(例如)的方法,以便我可以将其分配给相应的对象(例如James.cs)。还可以获取标签的内容C# 基于标记(例如starttag、EndTags)序列化XML文件,c#,xml,asp.net-mvc-4,xmlserializer,C#,Xml,Asp.net Mvc 4,Xmlserializer,感谢您阅读本文;) 我想序列化一个xml文件,但是标记名会根据文件的不同而有所不同。我为每个配置文件都有一个类文件,这样我就可以基于哪个文件创建一个对象 我现在需要的是一种识别标记名(例如)的方法,以便我可以将其分配给相应的对象(例如James.cs)。还可以获取标签的内容 我目前正在使用ASP.NET,但找不到任何适合我需要的库。停 您可以检查标记名,然后使用XmlSerializer对对象进行反序列化,这个通用函数可以帮助您实现这一点 public static TObject XmlDes
我目前正在使用ASP.NET,但找不到任何适合我需要的库。停 您可以检查标记名,然后使用XmlSerializer对对象进行反序列化,这个通用函数可以帮助您实现这一点
public static TObject XmlDeserialize<TObject>(XDocument xmlToDeserialize)
{
TObject deserializedObject = default(TObject);
XmlSerializer serializer = new XmlSerializer(typeof(TObject));
using (System.IO.TextReader reader = new System.IO.StringReader(xmlToDeserialize.ToString()))
{
deserializedObject = (TObject)serializer.Deserialize(reader);
}
return deserializedObject;
}
公共静态对象XmlDeserialize(XDocument xmlToDeserialize)
{
TObject反序列化对象=默认值(TObject);
XmlSerializer serializer=新的XmlSerializer(typeof(TObject));
使用(System.IO.TextReader=new System.IO.StringReader(xmlToDeserialize.ToString())
{
反序列化对象=(TObject)序列化程序;
}
返回反序列化对象;
}
请参阅中的运行示例:您可以构造多个
XmlSerializer
,并按照中的说明顺序检查每个序列化程序。如果您确实在询问,请参阅示例。