private static void RegisterServices(this IKernel kernel) { kernel.Bind <IMemoryCacheService>() .To <MemoryCacheService>() .InSingletonScope(); // InSingletonScope() is important so Ninject knows // to create only one copy and then reuse it every time // it is asked for // ignore the stuff below... I have left it in here for illustration kernel.Bind <IDbTransactionFactory>() .To <DbTransactionFactory>() .InRequestScope(); kernel.Bind <IDbModelContext>() .To <DbModelContext>() .InRequestScope(); kernel.Bind <IDbModelChangeContext>() .To <DbModelChangeContext>() .InRequestScope(); kernel.Bind <IUserContext>() .To <UserContext>() .InRequestScope(); kernel.BindAttributeAndFilter <IgnoreNonAjaxRequestsFilter, IgnoreNonAjaxRequestsAttribute>(); kernel.BindAttributeAndFilter <ProvideApplicationInfoFilter, ProvideApplicationInfoAttribute>(); kernel.BindAttributeAndFilter <ProvideSessionInfoFilter, ProvideSessionInfoAttribute>(); kernel.BindAttributeAndFilter <UseDialogLayoutFilter, UseDialogLayoutAttribute>(); kernel.BindAttributeAndFilter <CheckResourceAccessFilter, CheckResourceAccessAttribute>(); kernel.BindAttributeAndFilter <CheckResourceStateFilter, CheckResourceStateAttribute>(); }