Почему я могу вернуть строку из RIA Services, но не IEnumerable <string>? - PullRequest
3 голосов
/ 07 апреля 2011

Я пытаюсь создать метод в моем DomainService, чтобы вернуть список строк.Причина, по которой я это делаю, заключается в том, что я не хочу возвращать целые объекты информации.Я могу создать метод для возврата одной строки, как показано ниже:

    public string GetDestinations()
    {
        return "Hello world";
    }

Это работает нормально с клиента через вызов InvokeOperation<string>.Однако, когда я превращаю метод DomainService в Ienumerable следующим образом:

    public IEnumerable<string> GetDestinations()
    {
        List<String> h = new List<string>();
        h.Add("HELLO");
        h.Add("WORLD");

        return h;
    }

И затем, очевидно, использую вызов InvokeOperation<IEnumerable<string>>, я получаю ошибку компилятора:

Тип 'String' не являетсядопустимый тип объекта.Типы сущностей не могут быть примитивными или простыми, такими как string или Guid.

А?Это не имеет смысла, учитывая, что я могу вернуть одну строку.Как вернуть список строк из моего DomainService?

Ответы [ 2 ]

6 голосов
/ 07 апреля 2011

Попробуйте вернуть массив строк и пометить метод как InvokeOperation.

[Invoke]
public string[] GetDestinations()
{
...
}
2 голосов
/ 07 апреля 2011

По соглашению метод, который возвращает IEnumerable, считается как метод Query.Метод запроса может возвращать только коллекцию сущностей.Добавьте атрибут Invoke в ваш метод.

...