2011-08-25 2 views
1

J'ai créé une application avec des fonctions CRUD sur des documents XML avec un modèle de référentiel. J'ai 4 modèles (4 fichiers xml) avec chacun une classe de référentiel. Avant c'était juste 4 documents XML qui ont été lus dans un objet XDocument dans le constructeur.Question de programmation MVC3 Basic C# - Application XML CRUD dynamique - Édition

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

Maintenant, je voudrais rendre le fichier XML dynamique, il peut donc lire xmls illimitée

Ainsi quelle est la meilleure approche? Faire un second constructeur et passer un paramètre de l'url? Quelque chose comme ceci:

 public ItemRepository() 
      { 
      } 

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

D'autres suggestions? Cos je reçois NullReferenceException avec le modèle avec ceci.

+0

Uh. Btw. L'application est à peu près tiré de ce guide: http://www.gregjopa.com/2011/04/crud-operations-with-xml-data-in-asp-net-mvc-3/ –

+0

Quelle est votre convention de nommage? ? Par exemple, créez-vous un fichier XML distinct par entité, par utilisateur, etc.? –

Répondre

1

Je ne vois rien de mauvais avec votre approche, sauf que le référentiel peut accepter directement le chemin complet pour obtenir son fichier xml. Ce serait juste une façon un peu plus propre de l'écrire.

En tant que votre NullReferenceException, seul un débogage approfondi peut vous aider. Si votre première déclaration fonctionnait, je ne vois pas pourquoi la suivante ne devrait pas, au moins à partir des morceaux de code que vous avez écrits ici.

Bonne chance à vous,

+0

Je reçois l'exception NullReferenceException car elle ignore complètement le second constructeur, et par conséquent rien n'est lié au modèle. –

+0

Content que vous l'ayez trouvé. Si vous avez plus de problèmes avec cela, vous devriez poster une nouvelle question je suppose. – Arthis

+0

J'ai fait une solution de contournement. J'ai mis le code du constructeur dans toutes les méthodes CRUD. http://stackoverflow.com/questions/7244014/nullreferenceexception-while-using-xelement –