stuck binding xml to Model Class

一笑奈何 提交于 2019-12-06 21:44:36

You need to deserialize the XML into objects. You cannot simply cast XML as objects. When you say as IEnumerable<EmployeesModel>, you'll get a null since the types aren't compatible. Your code could look something like this:

var serializer = new XmlSerializer(typeof(EmployeesModel));
var model = 
    from xml in xmlDoc.Descendants("employee")
    select serializer.Deserialize(xml.CreateReader()) as EmployeesModel;

Another option you could consider is to project the XElements into EmployeesModel objects, like this:

var model =
    from xml in xmlDoc.Descendants("employee")
    select new EmployeesModel {
        employeeName = (string)xml.Element("employeeName"),
        employeePosition = (string)xml.Element("employeePosition"),
        employeeDescription = (string)xml.Element("employeeDescription"),
        employeePhoto = (string)xml.Element("employeePhoto"),
        employeeID = (int)xml.Element("employeeID"), };

As you can see, that can get tedious. However, it may be appropriate. If your XML file represents all employee data but your view shows only a subset of the data or the data in a different structure, you probably don't want your view model to be a direct copy of the contents of your data store.

If you want make binding xml to model class, you can use templay on codeplex. Further you can do some process on your model class and their childrens.

https://templay.codeplex.com/

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!