So if you have used a repository pattern with WCF and tried to run the built-in WCF Client app you most likely have seen this error:
The service type provided could not be loaded as a service because it does not have a default (parameter-less) constructor. To fix the problem, add a default constructor to the type, or pass an instance of the type to the host.
You get this when your Servce class looks something like this:
public class SiteService : Service, ISiteService { private readonly IRepositoryAsync _asynRepository; public SiteService(IRepositoryAsync repository) : base(repository) { _asynRepository = repository; }
That is expected because the IInstanceProvider only works with empty default constructors (with a few exceptions) and as you can see we are expecting a dependency. In this case a repository, but it could be any dependency such as another service.
Anyway, I know Ninject provides a solution you can get from the Nuget library via the Ninject.Extensions.Wcf, but…. I want to try out using Unity and from what I understand there are community supported solutions too.
…. More to come…