Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Майк Уосон
В предыдущем руководстве вы создали базовую службу OData, которая поддерживает операции CRUD. Теперь создадим клиент для службы.
Запустите новый экземпляр Visual Studio и создайте проект консольного приложения. В диалоговом окне "Создать проект " выберите "Установленные>шаблоны>" Visual C#>Windows Desktop и выберите шаблон консольного приложения . Назовите проект ProductsApp.
Замечание
Консольное приложение также можно добавить в то же решение Visual Studio, которое содержит службу OData.
Установка генератора кода клиента OData
В меню "Сервис" выберите "Расширения" и "Обновления". Выберите Online>галерею Visual Studio. В поле поиска найдите "Генератор кода клиента OData". Нажмите кнопку "Скачать ", чтобы установить VSIX. Возможно, вам будет предложено перезапустить Visual Studio.
Локальное выполнение службы OData
Запустите проект ProductService из Visual Studio. По умолчанию Visual Studio запускает браузер в корневой каталог приложения. Обратите внимание на универсальный код ресурса (URI); Это потребуется на следующем шаге. Оставьте приложение запущенным.
Замечание
Если вы помещаете оба проекта в одно решение, обязательно запустите проект ProductService без отладки. На следующем шаге необходимо сохранить работу службы во время изменения проекта консольного приложения.
Генерировать прокси-сервер службы
Прокси-сервер службы — это класс .NET, определяющий методы для доступа к службе OData. Прокси-сервер преобразует вызовы метода в HTTP-запросы. Вы создадите прокси-класс, выполнив шаблон T4.
Щелкните проект правой кнопкой мыши. Щелкните Добавить>Новый элемент.
В диалоговом окне Добавление нового элемента выберите Visual C# элементы>Код>Клиент OData. Назовите шаблон "ProductClient.tt". Нажмите кнопку «Добавить» и продолжайте через предупреждение безопасности.
На этом этапе вы получите ошибку, которую можно игнорировать. Visual Studio автоматически запускает шаблон, но шаблону сначала нужны некоторые параметры конфигурации.
Откройте файл ProductClient.odata.config. В элементе Parameter вставьте URI из проекта ProductService (предыдущий шаг). Рассмотрим пример.
<Parameter Name="MetadataDocumentUri" Value="http://localhost:61635/" />
Снова запустите шаблон. В обозревателе решений щелкните правой кнопкой мыши файл ProductClient.tt и выберите "Запустить настраиваемое средство".
Шаблон создает файл кода с именем ProductClient.cs, определяющий прокси-сервер. При разработке приложения при изменении конечной точки OData запустите шаблон еще раз, чтобы обновить прокси-сервер.
Использование прокси-сервиса для вызова службы OData
Откройте файл Program.cs и замените стандартный код следующим образом.
using System;
namespace ProductsApp
{
class Program
{
// Get an entire entity set.
static void ListAllProducts(Default.Container container)
{
foreach (var p in container.Products)
{
Console.WriteLine("{0} {1} {2}", p.Name, p.Price, p.Category);
}
}
static void AddProduct(Default.Container container, ProductService.Models.Product product)
{
container.AddToProducts(product);
var serviceResponse = container.SaveChanges();
foreach (var operationResponse in serviceResponse)
{
Console.WriteLine("Response: {0}", operationResponse.StatusCode);
}
}
static void Main(string[] args)
{
// TODO: Replace with your local URI.
string serviceUri = "http://localhost:port/";
var container = new Default.Container(new Uri(serviceUri));
var product = new ProductService.Models.Product()
{
Name = "Yo-yo",
Category = "Toys",
Price = 4.95M
};
AddProduct(container, product);
ListAllProducts(container);
}
}
}
Замените значение serviceUri на URI службы, указанный ранее.
// TODO: Replace with your local URI.
string serviceUri = "http://localhost:port/";
При запуске приложения он должен вывести следующее:
Response: 201
Yo-yo 4.95 Toys