c#xml反序列化
如何像这样反序列化XML,我对消息数组有一些问题c#xml反序列化,c#,C#,如何像这样反序列化XML,我对消息数组有一些问题 <EventSources> <Source> <Event> <Id>9</Id> <Message LcId="1033">Text9</Message> <Message LcId="1031">Message 9</Message> <Message LcId="1034">Text9</M
<EventSources>
<Source>
<Event>
<Id>9</Id>
<Message LcId="1033">Text9</Message>
<Message LcId="1031">Message 9</Message>
<Message LcId="1034">Text9</Message>
</Event>
<Event>
<Id>10</Id>
<Message LcId="1033">Text10</Message>
<Message LcId="1031">Message 10</Message>
<Message LcId="1034">Text10</Message>
</Event>
</Source>
</EventSources>
9
文本9
信息9
文本9
10
文本10
信息10
文本10
我试图序列化此代码,但输出不匹配
public class EventSources
{
#region Variables
private List<Event> _Source = new List<Event>();
#endregion
#region Properties
public List<Event> Source
{
get { return _Source; }
set { _Source = value; }
}
#endregion
public EventSources() { }
public void AddError(Event error)
{
_Source.Add(error);
}
}
public class Event
{
#region Variables
private int _Id;
private List<Message> _languageEntries = new List<Message>();
#endregion
#region Properties
[XmlElement()]
public int Id
{
get { return _Id; }
set { _Id = value; }
}
public List<Message> LanguageEntries
{
get { return _languageEntries; }
set { _languageEntries = value; }
}
#endregion
public Event() { }
public Event(int id)
{
_Id = Id;
}
public void Add(Message entry)
{
_languageEntries.Add(entry);
}
}
public class Message
{
#region Variables
private string _lang = string.Empty;
private string _text = string.Empty;
#endregion
#region Properties
[XmlAttribute("LcId")]
public string LcId
{
get { return _lang; }
set { _lang = value; }
}
[XmlText]
public string Text
{
get { return _text; }
set { _text = value; }
}
#endregion
public Message() { }
}
}
公共类事件源
{
#区域变量
私有列表_Source=新列表();
#端区
#区域属性
公共列表源
{
获取{return\u Source;}
设置{u Source=value;}
}
#端区
public EventSources(){}
公共无效加法器(事件错误)
{
_Source.Add(错误);
}
}
公开课活动
{
#区域变量
私人内部Id;
私有列表_languageEntries=新列表();
#端区
#区域属性
[XmlElement()]
公共整数Id
{
获取{return\u Id;}
设置{u Id=value;}
}
公共列表语言条目
{
获取{return\u languageEntries;}
设置{u languageEntries=value;}
}
#端区
公共事件(){}
公共事件(int id)
{
_Id=Id;
}
公共无效添加(消息条目)
{
_languageEntries.Add(条目);
}
}
公共类消息
{
#区域变量
私有字符串_lang=string.Empty;
私有字符串_text=string.Empty;
#端区
#区域属性
[XmlAttribute(“LcId”)]
公共字符串LcId
{
获取{return\u lang;}
设置{u lang=value;}
}
[XmlText]
公共字符串文本
{
获取{return\u text;}
设置{u text=value;}
}
#端区
公共消息(){}
}
}
输出:
<EventSources xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Source>
<Event>
<Id>5</Id>
<LanguageEntries>
<Message LcId="5">kjhfdkgdskfkgds</Message>
<Message LcId="554">kjhfskfkgds</Message>
</LanguageEntries>
</Event>
</Source>
<Messages />
</EventSources>
5.
KJHFDKGDSKFGDS
KJHFSKFGDS
[xmlement(“消息”)]
公共列表语言条目
{
获取{return\u languageEntries;}
设置{u languageEntries=value;}
}
如果您有此xml的架构文件,请使用xsd.exe生成匹配的C#对象。生成XML模式的对象表示后,可以使用XmlSerializer类中的方法来序列化和反序列化XML文件
[XmlElement("Message")]
public List<Message> LanguageEntries
{
get { return _languageEntries; }
set { _languageEntries = value; }
}