Как прочитать XML-файл из относительного пути в RIA Service? - PullRequest
0 голосов
/ 01 октября 2010

Я пытаюсь прочитать файл XML в RIA Service и получаю следующую ошибку:

Не удалось выполнить операцию загрузки для запроса 'GetSummaryList'.Не удалось найти часть пути 'C: \ WINDOWS \ SYSTEM32 \ CoreResources \ SumaryListDS.xml'.

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

Мне просто интересно, как прочитать файл по относительному пути в RIA Serviceс интерфейсом Silverlight?

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

Ответы [ 2 ]

0 голосов
/ 06 октября 2010

Вот как я решил свою проблему.Он реализован на одном из уровней бизнес-уровня, который может использоваться различными клиентами (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 Domain Service для использования клиентом Silverlight 4.

ОШИБКА:

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

Но SumaryListDS.xml находится в папке \ 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 голосов
/ 05 октября 2010

Вы должны быть в состоянии использовать .. для перехода на один каталог вверх, например ../CoreResources/GetSummaryList.xml

...