Using Castle - TylerBrinks/Snap GitHub Wiki
| Dependency | Version |
| Snap | Current |
| Snap.CastleWindsor.dll | Current |
| Castle.Core.dll | v1.2.0.x |
| Castle.MicroKernel.dll | v2.1.0.x |
| Castle.Windsor.dll | v2.1.0.x |
Castle uses the concept of a container as to create object instances. Because containers are instantiated objects, it’s necessary to use Snap’s instance-based fluent configuration.
// Create a container
var container = new WindsorContainer();
// Configure Snap to use Castle using the container instance
SnapConfiguration.For(new CastleAspectContainer(container.Kernel)).Configure(c =>
{
c.IncludeNamespaceRoot("My.Namespace.Root");
//c.IncludeNamespace("My.Namespace*");
c.Bind<HandleErrorInterceptor>().To<HandleErrorAttribute>();
});
Castle is now fully configured to build proxied instances that will run your configured interceptors.
// Register your own types with the Castle kernel.
container.AddComponent("MyType", typeof (IMyType), typeof (MyType));
// Get an AoP wrapped instance of your type from Castle
var instance = (IMyType)container.Kernel[typeof(IMyType)];
Happy coding!