【问题标题】:How to add item to ObservableCollection, return from xml file?如何将项目添加到 ObservableCollection,从 xml 文件返回?
【发布时间】:2015-12-07 07:37:36
【问题描述】:

我正在从 xml 文件(本地)获取数据

我已经组织了我的模型如下(这是它的一部分)

[XmlRoot(ElementName="Availability")]
public class Availability
{
    [XmlElement(ElementName = "Departure")]
    public List<Departure> departure { get; set; }
}


//availability ends here

[XmlRoot(ElementName="CruiseProduct")]
public class CruiseProduct
{
    [XmlElement(ElementName = "Availability")]
    public Availability availability { get; set; }

}

这是我的控制器

XElement cElement = XElement.Load(Server.MapPath("~/XmlFiles/CruiseData/cruiseprodutstwo.xml"));
var getdataa = cElement.Elements("CruiseProduct");


ObservableCollection<CruiseProduct> ResultantCollection = new ObservableCollection<CruiseProduct>();
foreach(var itmz in getdataa)
{
      ResultantCollection.Add(new CruiseProduct
      {

      });
}

如何向其中添加数据?不知道。是这种方式还是,有没有办法在不使用 ObservableCollection 的情况下像 json 一样 DeserializeObject?

【问题讨论】:

  • 列表 temp = new List();在这个临时列表中的循环和项目内。最后在循环之外将其添加到可观察集合构造函数的可观察集合中。

标签: c# xml asp.net-mvc-4 deserialization observablecollection


【解决方案1】:

听起来像是想从文件中反序列化 xml。 以下代码应该可以帮助您入门。 How to: Read Object Data from an XML File (C# and Visual Basic)

假设你的 XML 有一些根节点:

[XmlRoot(ElementName="Root")]
public class Root
{
  public IEnumerable<CruiseProduct> CruiseProducts{ get; set; }
}

XmlSerializer serializer = new XmlSerializer(typeof(Root));
using (StreamReader file = new System.IO.StreamReader(Server.MapPath("~/XmlFiles/CruiseData/cruiseprodutstwo.xml")))
{
  var data = (Root)serializer.Deserialize(file);
  var observablecruiseProducts = new ObservableCollection<CruiseProduct>(data.CruiseProducts);
}

【讨论】:

  • 这给出了Cannot serialize interface System.Collections.Generic.IEnumerable1[[Kcruise.Models.CruiseProduct, Kcruise, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]].`这个错误
猜你喜欢
  • 2017-07-30
  • 2015-07-13
  • 1970-01-01
  • 1970-01-01
  • 2010-11-25
  • 2012-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多