2011-08-25 80 views
1

我创建了一个应用程序,该应用程序在存储库模式的XML文档上使用CRUD函数。 我有4个模型(4个XML文件)与每个存储库类。 之前,它只是4个XML文档,在构造函数中读入XDocument对象。MVC3基本C#编程问题 - 动态CRUD XML应用程序 - 问题

itemData = XDocument.Load(HttpContext.Current.Server.MapPath("~/App_Data/Items/item1.xml")); 

现在我想使XML文件动态的,因此它可以读取无限个XML

所以最新最好的方法呢?制作第二个构造函数并传入来自url的参数?类似这样的:

 public ItemRepository() 
      { 
      } 

      public ItemRepository(string xml) 
      { 
      itemData = XDocument.Load(HttpContext.Current.Server.MapPath("~/App_Data/Items/" + xml + ".xml")); 
       .... 
      } 

其他建议?因为我用这个模型得到NullReferenceException。

+0

呃。顺便说一句。该应用程序几乎从本指南中获取:http://www.gregjopa.com/2011/04/crud-operations-with-xml-data-in-asp-net-mvc-3/ –

+0

什么是您的命名约定?例如,您是否为每个实体,每个用户等创建单独的xml文件? –

回答

1

我看不出有什么不好的方法,只不过存储库可能直接接受完整的路径来获取它的xml文件。这只是一种更简洁的书写方式。

由于您的NullReferenceException,只有彻底的调试可能会对您有所帮助。如果你的第一条语句正在工作,我不明白为什么下一个不应该,至少从你在这里写的代码位。

祝你好运,

+0

我得到NullReferenceException,因为它完全忽略了第二个构造函数,因此没有任何东西绑定到模型上。 –

+0

很高兴你找到它。如果你有更多的问题,你应该发布一个新的问题,我猜。 – Arthis

+0

我做了一个解决方法。我将构造函数中的代码放入所有的CRUD方法中。 http://stackoverflow.com/questions/7244014/nullreferenceexception-while-using-xelement –