Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Adding IoC Support to my WCF service hosted in a windows service (Autofac)

I'd like to setup my WCF services to use an IoC Container. There's an article in the Autofac wiki about WCF integration, but it's showing just an integration with a service hosted in IIS.

But my services are hosted in a windows service.

Here I got an advice to hook up the opening event http://groups.google.com/group/autofac/browse_thread/thread/23eb7ff07d8bfa03

I've followed the advice and this is what I got so far:

    private void RunService<T>()
    {
        var builder = new ContainerBuilder();

        builder.Register(c => new DataAccessAdapter("1")).As<IDataAccessAdapter>();

        ServiceHost serviceHost = new ServiceHost(typeof(T));

        serviceHost.Opening += (sender, args) => serviceHost.Description.Behaviors.Add(
            new AutofacDependencyInjectionServiceBehavior(builder.Build(), typeof(T), ??? ));                      


        serviceHost.Open();
     }

The AutofacDependencyInjectionServiceBehavior has a ctor which takes 3 parameters. The third one is of type IComponentRegistration and I have no idea where can I get it from. Any ideas ?

Thanks in advance.

like image 598
user137348 Avatar asked May 07 '10 08:05

user137348


1 Answers

I have written a blog post that describes how to use the Autofac WCF Integration when Self-Hosting WCF Services.

http://alexmg.com/self-hosting-wcf-services-with-the-autofac-wcf-integration/

That should be enough to point you in the right direction. I am going to update the documentation on the Autofac wiki to include the same example.

like image 198
Alex Meyer-Gleaves Avatar answered Nov 07 '22 14:11

Alex Meyer-Gleaves