Поделиться через


Xamarin.Forms Общие сведения о веб-службах

В этом разделе представлено пошаговое руководство Xamarin.Forms по образцу приложения, демонстрирующее взаимодействие с различными веб-службами. Хотя каждая веб-служба использует отдельное пример приложения, они функционально похожи и совместно используют общие классы.

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

  • Просмотр списка задач.
  • Добавление, изменение и удаление задач.
  • Задайте для задачи состояние "готово".
  • Проговорите поля имени и заметок задачи.

Во всех случаях задачи хранятся в серверной части, которая обращается через веб-службу.

При запуске приложения отображается страница, которая выводит список всех задач, полученных из веб-службы, и позволяет пользователю создавать новую задачу. Щелкнув задачу, приложение перемещается на вторую страницу, где задачу можно редактировать, сохранять, удалять и говорить. Ниже показано итоговое приложение:

Приложение todo — первая страницаПриложение todo — вторая страница

Каждый раздел в этом руководстве содержит ссылку на скачивание в другую версию приложения, демонстрирующую определенный тип серверной части веб-службы. Скачайте соответствующий пример кода на странице, относящейся к каждому стилю веб-службы.

Общие сведения об анатомии приложения

Проект общего кода для каждого примера приложения состоит из трех основных папок:

Папка Характер использования
Data Содержит классы и интерфейсы, используемые для управления элементами данных, и обмен данными с веб-службой. Как минимум, это включает TodoItemManager класс, который предоставляется через свойство в App классе для вызова операций веб-службы.
Модели Содержит классы модели данных для приложения. Как минимум, это TodoItem включает класс, который моделирует один элемент данных, используемый приложением. Папка также может включать любые дополнительные классы, используемые для моделирования пользовательских данных.
Представления Содержит страницы для приложения. Обычно это состоит из TodoListPage классов и TodoItemPage классов, а также всех дополнительных классов, используемых для проверки подлинности.

Проект общего кода для каждого приложения также состоит из нескольких важных файлов:

Файлы Характер использования
Constants.cs Класс Constants , указывающий любые константы, используемые приложением для взаимодействия с веб-службой. Эти константы требуют обновления для доступа к вашей личной серверной службе, созданной на поставщике.
ITextToSpeech.cs Интерфейс ITextToSpeech , указывающий, что Speak метод должен быть предоставлен любыми классами реализации.
Todo.cs Класс App , отвечающий за создание экземпляра первой страницы, которая будет отображаться приложением на каждой платформе, и TodoItemManager класс, используемый для вызова операций веб-службы.

Страницы просмотра

Большинство примеров приложений содержат по крайней мере две страницы:

  • TodoListPage — на этой странице отображается список экземпляров TodoItem и значок галочки, если TodoItem.Done это свойство true. Щелкнув элемент, перейдите к элементу TodoItemPage. Кроме того, можно создать новые элементы, щелкнув + символ.
  • TodoItemPage — на этой странице отображаются сведения для выбранного элемента TodoItem, и он позволяет изменять, сохранять, удалять и говорить.

Кроме того, некоторые примеры приложений содержат дополнительные страницы, используемые для управления процессом проверки подлинности пользователей.

Моделирование данных

Каждый пример приложения использует TodoItem класс для моделирования данных, отображаемых и отправленных в веб-службу для хранения. Следующий пример кода демонстрирует класс TodoItem:

public class TodoItem
{
    public string ID { get; set; }
    public string Name { get; set; }
    public string Notes { get; set; }
    public bool Done { get; set; }
}

Свойство ID используется для уникальной идентификации каждого TodoItem экземпляра и используется каждой веб-службой для идентификации данных для обновления или удаления.

Вызов операций веб-службы

Операции веб-службы доступны через TodoItemManager класс, а экземпляр класса можно получить через App.TodoManager свойство. Класс TodoItemManager предоставляет следующие методы для вызова операций веб-службы:

  • GetTasksAsync — этот метод используется для заполнения ListView элемента управления на TodoListPageTodoItem экземплярах, полученных из веб-службы.
  • SaveTaskAsync — этот метод используется для создания или обновления экземпляра TodoItem в веб-службе.
  • DeleteTaskAsync — этот метод используется для удаления экземпляра TodoItem в веб-службе.

Кроме того, некоторые примеры приложений содержат дополнительные методы в TodoItemManager классе, которые используются для управления процессом проверки подлинности пользователя.

Вместо прямого TodoItemManager вызова операций веб-службы методы вызывают методы в зависимый класс, который внедряется в TodoItemManager конструктор. Например, один пример приложения внедряет RestService класс в TodoItemManager конструктор, чтобы предоставить реализацию, которая использует REST API для доступа к данным.