Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / Languages / C#4.0

WCF Services for Silverlight (No Configuration Required)

4.33/5 (5 votes)
13 Sep 2010CPOL1 min read 25.3K   272  
WCF Services for Silverlight without configuration in config file

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.

Fig-1.jpg

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:

C#
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:

XML
<%@ 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.

Click to enlarge image

Points of Interest

  1. Service Library with no configuration in Web.Config
  2. Single Contract Interface, ISLService

History

  • 13th September, 2010: Initial post

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)