【问题标题】:Silverlight Cannot find XML data sourceSilverlight 找不到 XML 数据源
【发布时间】:2010-03-30 07:18:47
【问题描述】:

我对 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)通过服务器端控制器填充控件。即本地主机/视频

【问题讨论】:

    标签: asp.net-mvc silverlight


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      如果您在 Silverlight 部分中执行此操作,则应将 XML 文件放在嵌入式资源中,并将其作为流(使用 Assembly.GetManifestResourceStream 获取)或作为资源(la WPF,而不是嵌入式资源)访问) 并使用包部分语法访问它。

      【讨论】:

      • 你说得对,它在我的网络项目中。然而,上面的代码似乎在我的 c:\program files\Microsoft Visual 中寻找 XML 文档......知道为什么吗?由于执行程序集不是。?!
      • 是不是因为你用的是VS自带的Web开发服务器?
      • 是的..我是。你能推荐一个好的 Silverlight\MVC 教程或文档吗?我相信正在发生的事情是我的应用程序的起始页面是 Silverlight,当我尝试从该页面移动时,根上下文是不同的。意思是.. uri 是相对于我的 silverlight 应用程序而不是网络服务器。
      • 一个好的 Silverlight 教程是由 Sams 的 L. Bugnion 或 Mannings 的 Silverlight in Action 所著的“Silverlight 2 Unleashed”一书。我想我不明白你写的关于起始页的内容。您的应用程序是一个 Web 应用程序,因此起始页是一个 HTML 或 ASPX 页面(来自 Web 项目),其中包含对 Silverlight 插件的引用,这会导致加载由 SL 项目创建的 XAP 文件。应用程序的每个部分(客户端上的 SL,服务器上的 ASP.NET)都有自己的“上下文”。
      【解决方案3】:

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

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

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

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

      【讨论】:

        猜你喜欢
        • 2021-12-23
        • 2019-08-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-02
        • 2017-02-14
        • 2011-09-17
        相关资源
        最近更新 更多