Форум программистов, компьютерный форум, киберфорум
Web API
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
2 / 2 / 1
Регистрация: 04.12.2013
Сообщений: 16

Асинхронность в Web API

06.04.2017, 18:37. Показов 2359. Ответов 2

Студворк — интернет-сервис помощи студентам
У меня есть проект, который представляет собой REST API для управлением локальным хранилищем (по сути просто IEnumerable объект)

Это собственно реализация самого хранилища.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
namespace SbpService.Models
{
    public class SubjectService
    {
        private SubjectsRepository repo = SubjectsRepository.Current;
        public IEnumerable<Subject> GetSubjects()
        {
           
            return repo.GetAll();
        }
 
        public Subject GetSubject(int id)
        {
            return repo.Get(id);
        }
 
        public Subject AddSubject(String name)
        {
            Subject newSubject = new Subject();
            newSubject.SubjectName = name;
            return repo.Add(newSubject);
            
        }
    }
}

Реализация Api Controller, который я хочу сделать асинхронным
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
namespace SpbSubjectsAPI.Controllers
{
    public class SubjectsController : ApiController
    {
        private SubjectsRepository repo = SubjectsRepository.Current;
        private SubjectService service = new SubjectService();
 
        [HttpGet]
        public [B]async Task<[/B]IEnumerable<Subject>[B]>[/B] Subjects()
        {
            
            return [B]await[/B] service.GetSubjects();
        }
 
        [HttpGet]
        public Subject Subjects(int id)
        {
            return service.GetSubject(id);
        }
 
        [HttpPost]
        public Subject PostSubject(String SubjectName)
        {
            return service.AddSubject(SubjectName);
        }
 
        [HttpOptions]
        public void OptionsSubject()
        {
 
        }
      
    }
}
При компиляции выходит ошибка
HTML5
1
CS1061  'IEnumerable<>" не содержит определения для "GetAwaiter" и не удалось найти метод расширения "GetAwaiter", принимающий тип "IEnumerable<>" в качестве первого аргумента (возможно, пропущена директива using или ссылка на сборку).
гугл мне ничего существенного не дал, подскажите как убрать эту ошибку
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.04.2017, 18:37
Ответы с готовыми решениями:

Web API Сервер
Есть сервер. Я знаю его IP адрес, логин и пароль. Как подключиться к серверу используя web api, visual studio и C#? Весь интернет...

Авторизация в Web API
Всем привет. Я использую ASp.NET WEB API и делаю авторизацию к нему. По сути мне нужно только логин/пароль и некоторые поля. Ни ролей...

Авторизация на web api
Здравствуйте. Пытаюсь сделать авторизацию на web api с куки и вообще не понимаю, как. Про куки нашёл мало информации и только про то, как...

2
1 / 1 / 1
Регистрация: 27.01.2014
Сообщений: 16
19.04.2017, 01:35
У тебя синхронный метод GetSubjects в репозитории. У тебя должна быть цепочка асинхронных вызовов.
0
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,228
19.04.2017, 01:48
Цитата Сообщение от Alex_Gnatuyk Посмотреть сообщение
При компиляции выходит ошибка
Подозреваю, что у вас .NET 4.0, async/await появились в .NET 4.5, для таких случаев есть Microsoft.Bcl.Async.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.04.2017, 01:48
Помогаю со студенческими работами здесь

Производительность Web API
Приветствую. Решил разобраться с Web api. Создал проект. Опубликовал. Все работает, но есть ньюанс: Первое подключение...

Web api, out of memory
Добрый день. Имеется вот такой код public class FileHelper { public static string GetHash(FileInfo file) { ...

Клиент Web Api
Авторизуюсь к web api - следующий запрос выдает не авторизованный доступ, авторизация на сервере реализована с помощью FormAuthentication....

Условие поиска в Web Api
Пишу RESTful Api, столкнулся со следующим вопросом - как можно поменять условие поиска. К примеру - в коде используется условие поиска по...

Настройка роутинга web api
Добрый день Не получается настроить роутинг для проекта web api всё делаю согласно инфо:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru