To host the service, the host application uses the ServiceHost class from the System.ServiceModel namespace. It gets instantiated based on the type of service that you have implemented. In the preceding example, the ServiceHost class creates an object of EmployeeService.Services.EmployeeService and removes it from memory whenever the service completes execution.
If you check the ServiceHost object in the QuickWatch Window, you will notice that the object exposes several properties. The BaseAddress property defines the URL of the service, which maintains a runtime socket listener that listens to the port for the created service for any incoming requests. Once it receives any request, it parses the whole message passed to it and calls the service object.
Here's a screenshot of the QuickWatch Window, showing the number of properties exposed by the ServiceHost object:
The serviceHost.AddServiceEndpoint adds a service endpoint to the hosted service with a specified contract...