Introduction
This article shows how to develop configuration-less WCF Services for Silverlight client.
Background
It is pretty complex to maintain the configuration part of WCF services, if more services are adding / modifying, very frequently.
It will be a better idea to develop a service library for our Silverlight client, without any configurations in the config file. The following class diagram says about such a library, which is the scope of this article.
Using the Code
The vital class in the above class diagram is SLServiceHost, which inherits from ServiceHost and overrides ApplyConfiguration method. There, you can implement our custom bindings and Meta data behaviour, MEX, etc.
Below is the code snippet:
protected override void ApplyConfiguration()
{
base.ApplyConfiguration();
CustomBindings();
EnableMetaDataBehaviorAndAddMexEndPoint();
}
There is a custom service host factory, SLServiceHostFactory, which inherits from ServiceHostFactoryBase and creates the instance of our SLServiceHost.
In our custom service(MyService.svc), in the XAML, we set the factory and service code behind attributes as follows:
<%@ ServiceHost Language="C#"
Factory="Silverlight.Services.SLServiceHostFactory,Silverlight.Services"
Service="Silverlight.Services.MyService" %>
Run Silverlight.Services.Web application from VS2010. The port is set to 33333.
Now run your wcftestclient utility from VS command prompt and add the service and test.
Points of Interest
- Service Library with no configuration in Web.Config
- Single Contract Interface,
ISLService
History
- 13th September, 2010: Initial post