【问题标题】:How to read xml file from a relative path in RIA Service?如何从 RIA 服务中的相对路径读取 xml 文件?
【发布时间】:2010-10-07 02:04:49
【问题描述】:

我正在尝试读取 RIA 服务中的 XML 文件,但出现以下错误。

查询“GetSummaryList”的加载操作失败。找不到路径“C:\WINDOWS\SYSTEM32\CoreResources\SummaryListDS.xml”的一部分。

我正在使用使用 RIA 服务的 Silverlight 4。我正在尝试读取位于 bin\CoreResources 文件夹中的 SumaryListDS.xml。但是应用程序在 bin\CoreResources 下查找文件,它试图从 C:\WINDOWS\SYSTEM32\CoreResources 读取它。

我只是想知道如何在具有 Silverlight 前端的 RIA 服务中使用相对路径读取文件?

谢谢, 维诺德

【问题讨论】:

    标签: silverlight-4.0 service ria relative-path


    【解决方案1】:

    你应该可以使用 .. 上一个目录,例如 ../CoreResources/GetSummaryList.xml

    【讨论】:

      【解决方案2】:

      这是我解决问题的方法。它在业务层的一个层中实现,可供各种客户端(ASP.NET、控制台应用程序、Windows 客户端、托管在 ASP.NET 内的 Silverlight)使用。所以当调用 GetSummaryXml 时,以前它是

      public DataSet GetSummaryXml()
      {
          var dsReport = new DataSet("Report");
          var summaryListXmlPath = "CoreResources/SumaryListDS.xml";
          dsReport.ReadXml(summaryListXmlPath);
          return dsReport;
      }
      

      当我开始在 RIA 域服务中使用它以供 Silverlight 4 客户端使用时,我开始收到错误。

      错误:

      查询的加载操作失败 '获取摘要列表'。找不到 路径的一部分 'C:\WINDOWS\SYSTEM32\CoreResources\SummaryListDS.xml'。

      但是 SumaryListDS.xml 位于 bin\CoreResources,而不是 WINDOWS\SYSTEM32\CoreResources

      所以我将 GetSummaryXml 修改为...

      public DataSet GetSummaryXml()
      {
          var dsReport = new DataSet("Report");
          var currContext = HttpContext.Current;
          var summaryListXmlPath = "CoreResources/SumaryListDS.xml";
          if (currContext != null)
              summaryListSchemaPath = currContext.Server.MapPath(@"../bin/" + summaryListXmlPath);
          dsReport.ReadXml(summaryListXmlPath);
          return dsReport;
      }
      

      现在它工作正常。我不确定这是否是一个完美的解决方案。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-21
        • 2018-05-04
        • 1970-01-01
        • 1970-01-01
        • 2011-05-08
        相关资源
        最近更新 更多