2011-08-25 73 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 –