Parfois on peut être améné à vouloir déclarer un service de manière générique :

public class GenericService<T> : IGenericService<T> where T : EntityBase, new()
{
    public T GetEntity(string text)
    {
        var t = new T() { Text = text };
        t.Initialize();
        return t;
    }
}

Toutefois, le service ainsi déclaré ne pourra pas être utilisé dans IIS sans modifier la déclaration dans le fichier .svc :

<%@ ServiceHost 
    Language="C#"
    Service="WcfService.GenericService`1[[WcfInterfaces.SpecificEntity, WcfInterfaces]]" 
    CodeBehind="GenericService.cs" %>

The source repository for this article is on Github.