2010-10-01 7 views
0

Я пытаюсь прочитать XML-файл в службе RIA, и я получаю следующую ошибку.Как читать XML-файл из относительного пути в службе RIA?

Ошибка загрузки для запроса 'GetSummaryList'. Не удалось найти часть пути «C: \ WINDOWS \ SYSTEM32 \ CoreResources \ SumaryListDS.xml».

Я использую Silverlight 4, который использует сервис RIA. Я пытаюсь прочитать SumaryListDS.xml, расположенный в папке bin \ CoreResources. Но приложение приступило к поиску файла под bin \ CoreResources, пытаясь его прочитать из C: \ WINDOWS \ SYSTEM32 \ CoreResources.

Мне просто интересно, как читать файл, используя относительный путь в службе RIA с интерфейсом Silverlight?

Спасибо, Винод

ответ

0

Вот как я решил мою проблему. Он был реализован в одном из уровней бизнес-уровня, который может использоваться различными клиентами (ASP.NET, консольное приложение, клиент Windows, Silverlight, размещенный внутри ASP.NET). Поэтому, когда 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