Службы данных WCF: операция вызова службы

У меня есть экземпляр WCF Data Services с операцией службы.

[WebGet]
    public IQueryable<long> TestMethod() {
        long[] instanceNumberArray = new long[] { 1 };
        return instanceNumberArray.AsQueryable();
    }

Я пытаюсь назвать это так:

Uri EndPointAddressUri = new Uri(@"http://localhost:9227/ReviewServiceWDS.svc/");
DataServiceContext context = new DataServiceContext(EndPointAddressUri);
DataServiceQuery<long> query = context.CreateQuery<long>("TestMethod");
var result = query.Execute();
var value = result.FirstOrDefault();

В последней строке я ловлю исключение:

Ошибка обработки потока ответа. Элемент XML содержит смешанное содержимое.

В то же время Internet Explorer возвращает:

<TestMethod> <element p2:type="Edm.Int64">1</element> </TestMethod>

Как я могу решить эту проблему?


person Jovanny    schedule 03.04.2013    source источник


Ответы (1)


DataServiceContext.CreateQuery принимает только EntitySetName в качестве параметра. Для вызова операций службы необходимо использовать DataServiceContext.Execute.

person Cynthia    schedule 03.04.2013
comment
Кроме того, какую версию служб данных WCF (Microsoft.Data.Services.Client) вы используете? Убедитесь, что вы используете последнюю версию пакета (5.4RTM). Вы можете скачать его с Nuget.org. - person Pratik; 04.04.2013
comment
Большое спасибо, Синтия! Я должен более внимательно прочитать MSDN. msdn.microsoft.com/en-us/library/hh230677.aspx Спасибо, Pratik. Пользуюсь версией 5.3. Я не знал об этом выпуске. - person Jovanny; 04.04.2013