WCF - Auto-hébergement
Ici, le service WCF est hébergé dans une application console. Ci-dessous est le processus avec des étapes appropriées d'une manière séquentielle qui explique l'ensemble du processus.
Step 1- Commençons par créer le contrat de service et sa mise en œuvre. Créez une application console et nommez-la MyCalculatorService. Il s'agit d'un service simple pour renvoyer l'addition de deux nombres.

Step 2- Maintenant, faites un clic droit sur les références dans l'Explorateur de solutions et cliquez sur Ajouter des références. La fenêtre suivante s'ouvre; ajoutez une référence System.ServiceModel au projet.

Step 3- Créez une interface ISimpleCalculator, ajoutez l'attribut ServiceContract et OperationContract à la classe et fonction comme indiqué ci-dessous. Vous en saurez plus sur ces contrats lors de la prochaine session. Ces contrats exposeront la méthode au monde extérieur pour l'utilisation de ce service.
Step 4 - Le code derrière ce fichier est le suivant -
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 est la classe d'implémentation de l'interface IMyCalculatorService comme indiqué ci-dessous.
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- Maintenant, nous sommes prêts avec le service. C'est parti pour la mise en œuvre du processus d'hébergement. Créez une nouvelle application console et nommez-la "MyCalculatorWCFServiceHost".

Step 7 - Ajoutez la référence de system.servicemodel et le projet MyCalculatorWCFService.

Le code derrière ceci est le suivant -
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();
}
}
}
