Silverlight Не удается найти источник данных XML - PullRequest
0 голосов
/ 26 марта 2010

Я очень новичок в разработке Silverlight.Я понимаю, что это технология на стороне клиента, поэтому этот метод отличается от обычного развития ASP.NET.Сказав это, я не понимаю, где развернут мой серверный код.

У меня есть приложение silver light \ MVC.Я пытаюсь прочитать XML-документ из папки «Модели».Следующий фрагмент кода выполняется из класса, который находится в том же месте, что и XML-документ, «Модели».Load () приводит к исключению SystemIOFileNotFound.Я заметил, что при создании приложения XML-документ не располагается в том же месте, что и сборка веб-проекта.Я предполагаю, что это связано с тем, что это проект Silverlight.Может кто-нибудь сказать мне, что мне не хватает?

  _xdoc = new XDocument();
   _xdoc = XDocument.Load(new Uri("videos.xml",UriKind.Relative).ToString());

Редактировать ..

Поведение, за которым я следую, это стартовая страница (silverlight), заполняющая элементы управления через контроллер на стороне сервера.т.е. localhost / video

Ответы [ 3 ]

0 голосов
/ 26 марта 2010

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

Если вы делаете это в части Silverlight, вы должны поместить XML-файл во встроенный ресурс и получить к нему доступ в виде потока (получить его с помощью Assembly.GetManifestResourceStream) или в качестве ресурса (например, WPF, а не встроенного ресурса). ) и получить к нему доступ с помощью синтаксиса части пакета.

0 голосов
/ 30 марта 2010

Проблема заключалась в том, что я пытался получить доступ к этому статическому ресурсу, как в обычном ASP.net. Однако я нашел необходимым сопоставить путь к файлу, используя текущий HTTPContext:

HttpContext.Current.Server.MapPath("~/App_Data/videos.xml");

Так что вышеупомянутое сработало для меня. Поскольку этот код находится в веб-проекте, а не в проекте silverlight, мне все еще неясно, почему я не могу просто получить доступ к этому ресурсу, используя относительный путь. Этот код будет выполнен в контексте веб-сервера. т.е.

XDocument.load(../App_Data/videos.xml);
0 голосов
/ 26 марта 2010

Silverlight не может получить доступ к вашей файловой системе (к счастью), поэтому вы не можете получить доступ к файлу. Попробуйте встроить его в качестве ресурса или сохранить в локальном API хранилища, предоставляемом silverlight.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...