WCF - Self Hosting
Qui, il servizio WCF è ospitato in un'applicazione console. Di seguito è riportato il processo con passaggi adeguati in modo sequenziale che spiega l'intero processo.
Step 1- Per prima cosa, creiamo il contratto di servizio e la sua implementazione. Creare un'applicazione console e denominarla come MyCalculatorService. Questo è un semplice servizio per restituire l'aggiunta di due numeri.

Step 2- Ora, fai clic con il pulsante destro del mouse su Riferimenti in Esplora soluzioni e fai clic su Aggiungi riferimenti. Si apre la seguente finestra; aggiungere il riferimento System.ServiceModel al progetto.

Step 3- Creare un'interfaccia ISimpleCalculator, aggiungere gli attributi ServiceContract e OperationContract alla classe e alla funzione come mostrato di seguito. Saprai di più su questi contratti nella sessione successiva. Questi contratti esporranno il metodo al mondo esterno per l'utilizzo di questo servizio.
Step 4 - Il codice dietro questo file è il seguente -
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
namespace MyCalculatorWCFService {
[ServiceContract()]
Public interface ISimpleCalculator {
[OperationContract()]
int Add(int num1, int num2);
}
}
Step 5 - MyCalculatorService è la classe di implementazione per l'interfaccia IMyCalculatorService come mostrato di seguito.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace MyCalculatorWCFService {
Class SimpleCalculator : ISimpleCalculator {
Public int Add(int num1, int num2) {
return num1 + num2;
}
}
}
Step 6- Ora siamo pronti con il servizio. Andiamo per implementare il processo di hosting. Crea una nuova applicazione console e chiamala "MyCalculatorWCFServiceHost".

Step 7 - Aggiungi il riferimento di system.servicemodel e il progetto MyCalculatorWCFService.

Il codice alla base di questo è il seguente:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MyCalculatorWCFService;
using System.ServiceModel;
using System.ServiceModel.Description;
namespace MyCalculatorWCFServiceHost {
class Program {
static void Main(string[] args) {
//Create a URI to serve as the base address
UrihttpUrl = newUri("http://localhost:8090/MyCalculatorWCFService/SimpleCalculator");
//Create ServiceHost
ServiceHost host = newServiceHost(typeof(MyCalculatorWCFService.ISimpleCalculator), httpUrl);
//Add a service endpoint
host.AddServiceEndpoint(typeof(MyCalculatorWCFService.ISimpleCal culator), newWSHttpBinding(), "");
//Enable metadata exchange
ServiceMetadataBehaviorsmb = newServiceMetadataBehavior();
smb.HttpGetEnabled = true;
host.Description.Behaviors.Add(smb);
//Start the Service
host.Open();
Console.WriteLine("Service is host at " + DateTime.Now.ToString());
Console.WriteLine("Host is running... Press key to stop");
Console.ReadLine();
}
}
}
