C# 基于标记(例如starttag、EndTags)序列化XML文件

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

感谢您阅读本文;)

我想序列化一个xml文件,但是标记名会根据文件的不同而有所不同。我为每个配置文件都有一个类文件,这样我就可以基于哪个文件创建一个对象

我现在需要的是一种识别标记名(例如)的方法,以便我可以将其分配给相应的对象(例如James.cs)。还可以获取标签的内容


我目前正在使用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
,并按照中的说明顺序检查每个序列化程序。如果您确实在询问,请参阅示例。