Castle Windsor

Modified on 2013/07/22 23:16 by Krzysztof Ko┼║mic — Categorized as: Uncategorized

Windsor's logo

Windsor's logo

Castle Windsor is best of breed, mature Inversion of Control container available for .NET and Silverlight.

Current version is 3.2.1, released in July 2013.



Show me the code already

Windsor is very simple to use. Code below is not just hello world - that's how many big real life applications use Windsor. See the full documentation for more details on the API, features, patterns, and practices.

//application starts...
var container = new WindsorContainer();

// adds and configures all components using WindsorInstallers from executing assembly
container.Install(FromAssembly.This());

// instantiate and configure root component and all its dependencies and their dependencies and...
var king = container.Resolve<IKing>();
king.RuleTheCastle();

// clean up, application exits
container.Dispose();
So what about those installers? Here's one.

public class RepositoriesInstaller : IWindsorInstaller
{
	public void Install(IWindsorContainer container, IConfigurationStore store)
	{
		container.Register(Classes.FromThisAssembly()
			                .Where(Component.IsInSameNamespaceAs<King>())
			                .WithService.DefaultInterfaces()
			                .LifestyleTransient());
	}
}
For more in-depth sample try the section below, or dive right into API documentation on the right.

Samples and tutorials

Learn Windsor by example by completing step-by-step tutorials. See Windsor in action by exploring sample applications showcasing its capabilities.

Introductory tutorial with ASP.NET MVC 3


Silverlight 4 sample app




Documentation


Concepts


Using the Container


Customizing the container


Extending the container


Know any other container already?


Resources