OData v4 İstemci Uygulaması Oluşturma (C#)Create an OData v4 Client App (C#)

, Mike te sonby Mike Wasson

Önceki öğreticide CRUD işlemlerini destekleyen temel bir OData hizmeti oluşturdunuz.In the previous tutorial, you created a basic OData service that supports CRUD operations. Şimdi hizmet için bir istemci oluşturalım.Now let's create a client for the service.

Visual Studio 'nun yeni bir örneğini başlatın ve yeni bir konsol uygulaması projesi oluşturun.Start a new instance of Visual Studio and create a new console application project. Yeni proje iletişim kutusunda, C# Visual > Windows Masaüstü> yüklü > şablonları ' nı seçin ve konsol uygulaması şablonunu seçin.In the New Project dialog, select Installed > Templates > Visual C# > Windows Desktop, and select the Console Application template. Projeyi "ProductsApp"olarak adlandırın.Name the project "ProductsApp".

Note

Ayrıca, konsol uygulamasını OData hizmetini içeren aynı Visual Studio çözümüne ekleyebilirsiniz.You can also add the console app to the same Visual Studio solution that contains the OData service.

OData Istemci kod oluşturucuyu yüklerInstall the OData Client Code Generator

Araçlar menüsünde Uzantılar ve güncelleştirmeler' i seçin.From the Tools menu, select Extensions and Updates. Çevrimiçi > Visual Studio Galerisi' ni seçin.Select Online > Visual Studio Gallery. Arama kutusuna "OData Istemci kodu Oluşturucu"aratın.In the search box, search for "OData Client Code Generator". VSıX 'i yüklemek için İndir 'e tıklayın.Click Download to install the VSIX. Visual Studio 'Yu yeniden başlatmanız istenebilir.You might be prompted to restart Visual Studio.

OData hizmetini yerel olarak çalıştırmaRun the OData Service Locally

Visual Studio 'dan ProductService projesini çalıştırın.Run the ProductService project from Visual Studio. Varsayılan olarak, Visual Studio uygulama köküne bir tarayıcı başlatır.By default, Visual Studio launches a browser to the application root. URI 'yi aklınızda bulunan Bu, bir sonraki adımda gerekli olacaktır.Note the URI; you will need this in the next step. Uygulamayı çalışır durumda bırakın.Leave the application running.

Note

Her iki projeyi de aynı çözüme yerleştirirseniz, ProductService projesini hata ayıklama olmadan çalıştırdığınızdan emin olun.If you put both projects in the same solution, make sure to run the ProductService project without debugging. Bir sonraki adımda, konsol uygulama projesini değiştirirken hizmeti çalışır durumda tutmanız gerekecektir.In the next step, you will need to keep the service running while you modify the console application project.

Hizmet proxy 'Si oluşturmaGenerate the Service Proxy

Hizmet proxy 'si OData hizmetine erişim yöntemlerini tanımlayan bir .NET sınıfıdır.The service proxy is a .NET class that defines methods for accessing the OData service. Proxy, Yöntem çağrılarını HTTP isteklerine çevirir.The proxy translates method calls into HTTP requests. Bir T4 şablonuçalıştırarak proxy sınıfını oluşturacaksınız.You will create the proxy class by running a T4 template.

Projeye sağ tıklayın.Right-click the project. > Yeni öğe Ekle ' yi seçin.Select Add > New Item.

Yeni öğe Ekle iletişim kutusunda, C# Visual Items > Code > OData Client' ı seçin.In the Add New Item dialog, select Visual C# Items > Code > OData Client. Şablonu "ProductClient.tt"olarak adlandırın.Name the template "ProductClient.tt". Ekle ' ye tıklayın ve Güvenlik Uyarısı ' na tıklayın.Click Add and click through the security warning.

Bu noktada, yoksayabilirsiniz bir hata alırsınız.At this point, you'll get an error, which you can ignore. Visual Studio şablonu otomatik olarak çalıştırır, ancak şablonda önce bazı yapılandırma ayarları gerekir.Visual Studio automatically runs the template, but the template needs some configuration settings first.

ProductClient. OData. config dosyasını açın. Parameter öğesinde, ProductService projesinden URI 'yi (önceki adımda) yapıştırın.Open the file ProductClient.odata.config. In the Parameter element, paste in the URI from the ProductService project (previous step). Örneğin:For example:

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

Şablonu yeniden çalıştırın.Run the template again. Çözüm Gezgini ' de, ProductClient.tt dosyasına sağ tıklayın ve özel araç Çalıştır' ı seçin.In Solution Explorer, right click the ProductClient.tt file and select Run Custom Tool.

Şablon, proxy 'yi tanımlayan ProductClient.cs adlı bir kod dosyası oluşturur.The template creates a code file named ProductClient.cs that defines the proxy. Uygulamanızı geliştirirken, OData uç noktasını değiştirirseniz, proxy 'yi güncelleştirmek için şablonu yeniden çalıştırın.As you develop your app, if you change the OData endpoint, run the template again to update the proxy.

OData hizmetini çağırmak için hizmet proxy 'sini kullanmaUse the Service Proxy to Call the OData Service

Program.cs dosyasını açın ve ortak kodu aşağıdaki kodla değiştirin.Open the file Program.cs and replace the boilerplate code with the following.

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);
        }
    }
}

Serviceurı değerini daha önce gelen hizmet URI 'siyle değiştirin.Replace the value of serviceUri with the service URI from earlier.

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

Uygulamayı çalıştırdığınızda, aşağıdakilerden çıkış yapmanız gerekir:When you run the app, it should output the following:

Response: 201
Yo-yo 4.95 Toys