Вопрос программирования MVC3 Basic C # - Приложение Dynamic CRUD XML - Проблема - PullRequest
1 голос
/ 25 августа 2011

Я создал приложение с функциями CRUD для документов XML с шаблоном хранилища. У меня есть 4 модели (4 файла XML) с каждым классом репозитория. До этого было только 4 xml документа, которые были прочитаны в объект XDocument в конструкторе.

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

Теперь я хотел бы сделать файл XML динамическим, чтобы он мог читать неограниченное количество xmls

Так какой же самый лучший подход? Создание второго конструктора и передача параметра из URL? Как то так:

        public ItemRepository()
            {
            }

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

Есть еще предложения? Потому что я получаю NullReferenceException с моделью с этим.

Ответы [ 2 ]

1 голос
/ 25 августа 2011

Я не вижу ничего плохого в вашем подходе, за исключением того, что хранилище может напрямую принимать полный путь для получения своего XML-файла. Это был бы немного более чистый способ написания этого.

В качестве исключения NullReferenceException вам может помочь только тщательная отладка. Если ваше первое утверждение работало, я не понимаю, почему следующее не должно, по крайней мере, из фрагментов кода, которые вы написали здесь.

Удачи тебе,

0 голосов
/ 06 сентября 2011

Самый простой обходной путь - просто вывести код из конструктора во все методы CRUD. Здесь ссылка на немного больше информации (и больше вопросов: P) NullReferenceException при использовании XElement

...