2010-10-01 51 views
0

我想讀取RIA服務中的XML文件,並且出現以下錯誤。如何從RIA服務中的相對路徑讀取xml文件?

查詢'GetSummaryList'的加載操作失敗。找不到路徑'C:\ WINDOWS \ SYSTEM32 \ CoreResources \ SumaryListDS.xml'的一部分。

我使用的是使用RIA服務的Silverlight 4。我正在嘗試閱讀位於bin \ CoreResources文件夾中的SumaryListDS.xml。但是該應用程序在bin \ CoreResources下查找文件,它試圖從C:\ WINDOWS \ SYSTEM32 \ CoreResources中讀取它。

我只是想知道如何使用Silverlight前端的RIA Service中的相對路徑讀取文件?

感謝, 維諾德

回答

0

這是我如何解決我的問題。它已在業務層的一個層中實現,可供各種客戶端(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的客戶端使用。

錯誤:

Load operation failed for query 'GetSummaryList'. Could not find a part of the path 'C:\WINDOWS\SYSTEM32\CoreResources\SumaryListDS.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; 
} 

而且現在它的工作正常。我不確定這是否是完美的解決方案。

0

你應該能夠使用..去了一個目錄,如../CoreResources/GetSummaryList.xml

相關問題