Bagikan melalui


Cara: Menentukan Pengikatan Layanan dalam Kode

Dalam contoh ini, ICalculator kontrak didefinisikan untuk layanan kalkulator, layanan diimplementasikan di CalculatorServicekelas, dan kemudian titik akhirnya ditentukan dalam kode, di mana ditentukan bahwa layanan harus menggunakan BasicHttpBinding kelas.

Biasanya ini adalah praktik terbaik untuk menentukan informasi pengikatan dan alamat secara deklaratif dalam konfigurasi daripada secara imperatif dalam kode. Menentukan titik akhir dalam kode biasanya tidak praktis karena pengikatan dan alamat untuk layanan yang disebarkan biasanya berbeda dari yang digunakan saat layanan sedang dikembangkan. Lebih umumnya, menjaga informasi pengikatan dan alamat keluar dari kode memungkinkan titik akhit untuk berubah tanpa harus mengompilasi ulang atau menyebarkan ulang aplikasi.

Untuk deskripsi tentang cara mengonfigurasi layanan ini menggunakan elemen konfigurasi alih-alih kode, lihat Cara: Menentukan Pengikatan Layanan dalam Konfigurasi.

Untuk menentukan dalam kode untuk menggunakan BasicHttpBinding untuk layanan

  1. Tentukan kontrak layanan untuk jenis layanan.

    [ServiceContract]
    public interface ICalculator
    {
       [OperationContract]
       double Add(double n1, double n2);
       [OperationContract]
       double Subtract(double n1, double n2);
       [OperationContract]
       double Multiply(double n1, double n2);
       [OperationContract]
       double Divide(double n1, double n2);
    }
    
    
    <ServiceContract()> _
    Public Interface ICalculator
    
        <OperationContract()> _
        Function Add(ByVal n1 As Double, _
                     ByVal n2 As Double) As Double
    
        <OperationContract()> _
        Function Subtract(ByVal n1 As Double, ByVal _
                          n2 As Double) As Double
    
        <OperationContract()> _
        Function Multiply(ByVal n1 As Double, _
                          ByVal n2 As Double) As Double
    
        <OperationContract()> _
        Function Divide(ByVal n1 As Double, _
                        ByVal n2 As Double) As Double
    
    End Interface
    
    
  2. Implementasikan kontrak layanan di kelas layanan.

    public class CalculatorService : ICalculator
    {
       public double Add(double n1, double n2)
       {
          return n1 + n2;
       }
       public double Subtract(double n1, double n2)
       {
          return n1 - n2;
       }
       public double Multiply(double n1, double n2)
       {
          return n1 * n2;
       }
       public double Divide(double n1, double n2)
       {
          return n1 / n2;
       }
    }
    
    
    Public Class CalculatorService
        Implements ICalculator
    
        Public Function Add(ByVal n1 As Double, _
                            ByVal n2 As Double) As Double Implements ICalculator.Add
            Return n1 + n2
        End Function
    
        Public Function Subtract(ByVal n1 As Double, _
                                 ByVal n2 As Double) As Double Implements ICalculator.Subtract
            Return n1 - n2
        End Function
    
        Public Function Multiply(ByVal n1 As Double, _
                                 ByVal n2 As Double) As Double Implements ICalculator.Multiply
            Return n1 * n2
        End Function
    
        Public Function Divide(ByVal n1 As Double, _
                               ByVal n2 As Double) As Double Implements ICalculator.Divide
            Return n1 / n2
        End Function
    
    End Class
    
    
  3. Di aplikasi hosting, buat alamat dasar untuk layanan dan pengikatan untuk digunakan dengan layanan.

    
    // Specify a base address for the service
    
    String baseAddress = "http://localhost/CalculatorService";
    // Create the binding to be used by the service.
    
    BasicHttpBinding binding1 = new BasicHttpBinding();
    
    
    ' Specify a base address for the service
    Dim baseAddress = "http://localhost/CalculatorService"
    ' Create the binding to be used by the service.
    
    Dim binding1 As New BasicHttpBinding()
    
  4. Buat host untuk layanan, tambahkan titik akhir, lalu buka host.

    
    
    using(ServiceHost host = new ServiceHost(typeof(CalculatorService)))
    {
        host.AddServiceEndpoint(typeof(ICalculator),binding1, baseAddress);
    
    
        host.Open();
    }	
    
    
    
    Using host As New ServiceHost(GetType(CalculatorService))
        With host
            .AddServiceEndpoint(GetType(ICalculator), _
                                    binding1, _
                                    baseAddress)
    
            host.Open()
        End With
    End Using
    

Untuk mengubah nilai default properti pengikatan

  1. Untuk mengubah salah satu nilai properti default kelas BasicHttpBinding, atur nilai properti pada pengikatan ke nilai baru sebelum membuat host. Misalnya, untuk mengubah nilai batas waktu buka dan tutup default 1 menit menjadi 2 menit, gunakan yang berikut ini.

    
    TimeSpan modifiedCloseTimeout = new TimeSpan(00, 02, 00);
    binding1.CloseTimeout = modifiedCloseTimeout;
    
    
    Dim modifiedCloseTimeout As New TimeSpan(0, 2, 0)
    binding1.CloseTimeout = modifiedCloseTimeout
    

Lihat juga