Introducing Action Injection with Autofac ASP.NET MVC Integration
There are currently two main approaches to performing dependency injection, Constructor Injection and Setter Injection. The more popular of the two approaches is Constructor Injection. The dependencies that a type has are made obvious because they must be supplied in order to construct an instance. This also makes it easier for you to ensure that a newly instantiated object is in a valid state. When working with a type the constructor is usually the first thing that you come into contact with.
Making Self-Hosting with Autofac WCF Integration easier
Thinking about the sample I recently posted for shelf-hosting WCF Services with the Autofac WCF Integration, I decided that the boilerplate code for configuring the Service Behavior could be moved into an extension method on the
ServiceHost instead. I have checked in some code that will extend
ServiceHostBase with a new method called
AddDependencyInjectionBehavior. There are two overloads of the method, one that takes a generic argument for the service contract type, and another that allows you to provide a
Type for the service contract in case you are configuring your WCF Services in some sort of latebound manner. Both overloads of the method require an
Self-Hosting WCF Services with the Autofac WCF Integration
A question came up recently in the Autofac group about how to use the WCF Integration when self-hosting WCF Services. This post provides a quick demonstration of how to handle the self-hosting scenario and should be enough to get you started. The example is a rather unimaginative web service that echoes back a message.
Autofac 2.0 Podcast
Make sure you have a listen to Nicholas Blumhardt talking about Autofac 2 on the Talking Shop Down Under podcast.
Registering open generic types in Autofac 1.4
UPDATE (5 January 2010): This feature has now been added to the Autofac 1.4 codebase. I had intended to get this one directly into the codebase but Nick and I got our wires crossed, and I ended up posting it as an extension instead. Regardless, this post remains a valid example of extending Autofac 1.4. The
RegisterClosedTypesOf method will appear on the
ContainerBuilder in the next 1.4 maintenance release. Until then you can use the extension below to register your open generic types.
Registering open generic interface types in Autofac
UPDATE (22 December 2009): I have submitted a patch to Nick and this feature has now been added to the Autofac V2 codebase. While including the patch Nick added support for open generic classes and renamed the extension method to
AsClosedTypesOf. This post will be left in its current form and remains a valid example of extending Autofac.