// // Authors: Nate Kohari , Remo Gloor // Copyright (c) 2007-2010, Enkari, Ltd. and contributors // // Dual-licensed under the Apache License, Version 2.0, and the Microsoft Public License (Ms-PL). // See the file LICENSE.txt for details. // namespace Ninject.Web.Mvc { using System.Linq; using System.Web.Mvc; /// /// Injects all filters of a filter info. /// public class FilterInjector : IFilterInjector { /// /// The kernel /// private readonly IKernel kernel; /// /// Initializes a new instance of the class. /// /// The kernel. public FilterInjector(IKernel kernel) { this.kernel = kernel; } /// /// Injects all filters of the specified filter info. /// /// The filter info. public void Inject(FilterInfo filterInfo) { foreach (IActionFilter filter in filterInfo.ActionFilters.Where(f => f != null)) { this.kernel.Inject(filter); } foreach (IAuthorizationFilter filter in filterInfo.AuthorizationFilters.Where(f => f != null)) { this.kernel.Inject(filter); } foreach (IExceptionFilter filter in filterInfo.ExceptionFilters.Where(f => f != null)) { this.kernel.Inject(filter); } foreach (IResultFilter filter in filterInfo.ResultFilters.Where(f => f != null)) { this.kernel.Inject(filter); } } } }