繁体   English   中英

Silverlight找不到XML数据源

[英]Silverlight Cannot find XML data source

我对Silverlight开发非常陌生。 我知道这是客户端技术,因此,该天堂与常规ASP.NET开发的天堂有所不同。 话虽如此,我不知道服务器端代码的部署位置。

我有一个银色的\\ MVC应用程序。 我正在尝试从“模型”文件夹中读取XML文档。 从与XML文档“模型”相同位置的类中执行以下代码。 load()导致SystemIOFileNotFound异常。 我注意到在构建应用程序时,XML文档未放置在与Web项目的程序集相同的位置。 我认为这是特定于事实的,这是一个Silverlight项目。 有人可以告诉我我所缺少的吗?

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

编辑..

我的行为是起始页(silverlight)通过服务器端控制器填充控件。 即本地主机/视频

Silverlight无法访问您的文件系统(非常感谢),这就是为什么您无法访问该文件的原因。 尝试将其嵌入为资源,或将其存储在silverlight提供的本地存储API中。

假设您的Models文件夹位于Web项目(即不是Silverlight项目)中,那么我认为您的问题与Silverlight无关。 加载XML文件的代码假定该文件位于当前目录中,因此您需要通过部署技术来确保这一点。

如果在Silverlight部分中执行此操作,则应将XML文件放入嵌入式资源中,并作为流(通过Assembly.GetManifestResourceStream进行获取)或作为资源(如WPF,而不是嵌入式资源)进行访问并访问它与包部分的语法相同。

问题是我试图像在典型的ASP.net中一样尝试访问此静态资源。 但是我发现有必要使用当前的HTTPContext将路径映射到文件:

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

因此以上对我有用。 由于此代码在Web项目中,而不在Silverlight项目中,因此我仍然不清楚为什么我不能仅使用相对路径访问此资源。 该代码将在Web服务器的上下文中执行。

XDocument.load(../App_Data/videos.xml);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM