Bagikan melalui


Tutorial: Menerapkan kontrak layanan WCF

Tutorial ini menjelaskan tugas kedua dari lima tugas yang diperlukan untuk membuat aplikasi dasar Windows Communication Foundation (WCF). Untuk gambaran umum tutorial, lihat Tutorial: Mulai menggunakan aplikasi Windows Communication Foundation.

Langkah selanjutnya untuk membuat aplikasi WCF adalah menambahkan kode untuk mengimplementasikan antarmuka layanan WCF yang Anda buat di langkah sebelumnya. Dalam langkah ini, Anda membuat kelas bernama CalculatorService yang menerapkan antarmuka ICalculator yang ditentukan pengguna. Setiap metode dalam kode berikut memanggil operasi kalkulator dan menulis teks ke konsol untuk mengujinya.

Dalam tutorial ini, Anda akan mempelajari cara:

  • Tambahkan kode untuk menerapkan kontrak layanan WCF.
  • Bangun solusinya.

Menambahkan kode untuk menerapkan kode layanan WCF

Di GettingStartedLib, buka file Service1.cs atau Service1.vb dan ganti kodenya dengan kode berikut:

using System;
using System.ServiceModel;

namespace GettingStartedLib
{
    public class CalculatorService : ICalculator
    {
        public double Add(double n1, double n2)
        {
            double result = n1 + n2;
            Console.WriteLine("Received Add({0},{1})", n1, n2);
            // Code added to write output to the console window.
            Console.WriteLine("Return: {0}", result);
            return result;
        }

        public double Subtract(double n1, double n2)
        {
            double result = n1 - n2;
            Console.WriteLine("Received Subtract({0},{1})", n1, n2);
            Console.WriteLine("Return: {0}", result);
            return result;
        }

        public double Multiply(double n1, double n2)
        {
            double result = n1 * n2;
            Console.WriteLine("Received Multiply({0},{1})", n1, n2);
            Console.WriteLine("Return: {0}", result);
            return result;
        }

        public double Divide(double n1, double n2)
        {
            double result = n1 / n2;
            Console.WriteLine("Received Divide({0},{1})", n1, n2);
            Console.WriteLine("Return: {0}", result);
            return result;
        }
    }
}
Imports System.ServiceModel

Namespace GettingStartedLib

    Public Class CalculatorService
        Implements ICalculator

        Public Function Add(ByVal n1 As Double, ByVal n2 As Double) As Double Implements ICalculator.Add
            Dim result As Double = n1 + n2
            ' Code added to write output to the console window.
            Console.WriteLine("Received Add({0},{1})", n1, n2)
            Console.WriteLine("Return: {0}", result)
            Return result
        End Function

        Public Function Subtract(ByVal n1 As Double, ByVal n2 As Double) As Double Implements ICalculator.Subtract
            Dim result As Double = n1 - n2
            Console.WriteLine("Received Subtract({0},{1})", n1, n2)
            Console.WriteLine("Return: {0}", result)
            Return result

        End Function

        Public Function Multiply(ByVal n1 As Double, ByVal n2 As Double) As Double Implements ICalculator.Multiply
            Dim result As Double = n1 * n2
            Console.WriteLine("Received Multiply({0},{1})", n1, n2)
            Console.WriteLine("Return: {0}", result)
            Return result

        End Function

        Public Function Divide(ByVal n1 As Double, ByVal n2 As Double) As Double Implements ICalculator.Divide
            Dim result As Double = n1 / n2
            Console.WriteLine("Received Divide({0},{1})", n1, n2)
            Console.WriteLine("Return: {0}", result)
            Return result

        End Function
    End Class
End Namespace

Mengedit App.config

Edit App.config di GettingStartedLib untuk mencerminkan perubahan yang Anda buat pada kode.

  • Untuk proyek Visual C#:

    • Ubah baris 14 menjadi <service name="GettingStartedLib.CalculatorService">
    • Ubah baris 17 menjadi <add baseAddress = "http://localhost:8000/GettingStarted/CalculatorService" />
    • Ubah baris 22 menjadi <endpoint address="" binding="wsHttpBinding" contract="GettingStartedLib.ICalculator">
  • Untuk proyek Visual Basic:

    • Ubah baris 14 menjadi <service name="GettingStartedLib.GettingStartedLib.CalculatorService">
    • Ubah baris 17 menjadi <add baseAddress = "http://localhost:8000/GettingStarted/CalculatorService" />
    • Ubah baris 22 menjadi <endpoint address="" binding="wsHttpBinding" contract="GettingStartedLib.GettingStartedLib.ICalculator">

Mengkompilasi kode

Buat solusi untuk memverifikasi bahwa tidak ada kesalahan kompilasi. Jika Anda menggunakan Visual Studio, pada menu Buat pilih Buat Solusi (atau tekan Ctrl+Shift+B).

Langkah berikutnya

Dalam tutorial ini, Anda mempelajari cara:

  • Tambahkan kode untuk menerapkan kontrak layanan WCF.
  • Bangun solusinya.

Lanjutkan ke tutorial berikutnya untuk mempelajari cara menjalankan layanan WCF.