Aracılığıyla paylaş


OData v4 İstemci Uygulaması Oluşturma (C#)

tarafından Mike Wasson

Önceki öğreticide CRUD işlemlerini destekleyen temel bir OData hizmeti oluşturdunuz. Şimdi hizmet için bir istemci oluşturalım.

Yeni bir Visual Studio örneği başlatın ve yeni bir konsol uygulaması projesi oluşturun. Yeni Proje iletişim kutusunda Yüklü>Şablonlar>Visual C#>Windows Masaüstü'nü ve ardından Konsol Uygulaması şablonunu seçin. Projeyi "ProductsApp" olarak adlandırın.

Yeni bir konsol uygulaması projesi oluşturmak için menü seçeneklerindeki yolu vurgulayan yeni proje iletişim kutusunun ekran görüntüsü.

Not

Konsol uygulamasını, OData hizmetini içeren Visual Studio çözümüne de ekleyebilirsiniz.

OData İstemci Kod Oluşturucu'nu yükleme

Araçlar menüsünde Uzantılar ve Güncelleştirmeler'yi seçin. Çevrimiçi>Visual Studio Galerisi'ne tıklayın. Arama kutusunda "OData İstemci Kodu Oluşturucu" araması yapın. VSIX'i yüklemek için İndir'e tıklayın. Visual Studio'yu yeniden başlatmanız istenebilir.

O Verileri için V S I X istemci kodu oluşturucuyu indirme ve yükleme menüsünü gösteren uzantılar ve güncelleştirmeler iletişim kutusunun ekran görüntüsü.

OData Hizmetini Yerel Olarak Çalıştırma

Visual Studio'dan ProductService projesini çalıştırın. Varsayılan olarak, Visual Studio uygulama köküne bir tarayıcı başlatır. URI'yi not edin; bir sonraki adımda buna ihtiyacınız olacak. Uygulamayı çalışır durumda bırakın.

Visual Studio'da çalışan Product Service projesinin kodunu gösteren web tarayıcısının yerel ana bilgisayarının ekran görüntüsü.

Not

Her iki projeyi de aynı çözüme yerleştirirseniz, ProductService projesini hata ayıklamadan çalıştırdığınızdan emin olun. Sonraki adımda, konsol uygulaması projesini değiştirirken hizmeti çalışır durumda tutmanız gerekir.

Hizmet Ara Sunucusunu Oluşturma

Hizmet ara sunucusu, OData hizmetine erişme yöntemlerini tanımlayan bir .NET sınıfıdır. Proxy, yöntem çağrılarını HTTP isteklerine çevirir. Bir T4 şablonu çalıştırarak proxy sınıfını oluşturacaksınız.

Projeye sağ tıklayın. Yeni Öğe Ekle'yi> seçin.

Seçenekler sarı renkle vurgulanarak projeye yeni öğe eklemeye yönelik dosya yolunu gösteren çözüm gezgini iletişim kutusunun ekran görüntüsü.

Yeni Öğe Ekle iletişim kutusunda Visual C# Öğe>Kodu>OData İstemcisi'ni seçin. Şablonu "ProductClient.tt" olarak adlandırın. Ekle'ye tıklayın ve güvenlik uyarısına tıklayın.

O Data istemcisi ürün şablonunu gösteren ve yeni ad eklemek için aşağıdaki ad alanını daire içine alan yeni öğeler ürün uygulaması ayarları penceresinin ekran görüntüsü.

Bu noktada, yoksayabileceğiniz bir hata alırsınız. Visual Studio şablonu otomatik olarak çalıştırır, ancak önce bazı yapılandırma ayarları gerekir.

Bir hata sekmesi ve bir uyarı sekmesinin yanı sıra hatanın ayrıntılı iletisini gösteren hata iletisi penceresinin ekran görüntüsü.

Dosya ProductClient.odata.config açın. öğesinde Parameter ProductService projesinden (önceki adım) URI'yi yapıştırın. Örnek:

<Parameter Name="MetadataDocumentUri" Value="http://localhost:61635/" />

Parametre öğesine yapıştırıldıktan sonra U R I örneğini gösteren ürün istemcisi O Data nokta yapılandırma dosyasının ekran görüntüsü.

Şablonu yeniden çalıştırın. Çözüm Gezgini'da ProductClient.tt dosyasına sağ tıklayın ve Özel Aracı Çalıştır'ı seçin.

Şablon, ara sunucuyu tanımlayan ProductClient.cs adlı bir kod dosyası oluşturur. Uygulamanızı geliştirirken OData uç noktasını değiştirirseniz, proxy'yi güncelleştirmek için şablonu yeniden çalıştırın.

Oluşturulan ve ara sunucuyu tanımlayan ürün istemcisi dot c s dosyasını vurgulayan çözüm gezgini pencere menüsünün ekran görüntüsü.

OData Hizmetini Çağırmak için Hizmet Ara Sunucusunu Kullanma

Program.cs dosyasını açın ve ortak kodu aşağıdakilerle değiştirin.

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 değerini önceki hizmet URI'siyle değiştirin.

// TODO: Replace with your local URI.
string serviceUri = "http://localhost:port/";

Uygulamayı çalıştırdığınızda aşağıdaki çıkışı vermelidir:

Response: 201
Yo-yo 4.95 Toys