diff --git a/src/Nancy.Bootstrappers.Ninject.Tests/Nancy.Bootstrappers.Ninject.Tests.csproj b/src/Nancy.Bootstrappers.Ninject.Tests/Nancy.Bootstrappers.Ninject.Tests.csproj
index 9073487..5d6282f 100644
--- a/src/Nancy.Bootstrappers.Ninject.Tests/Nancy.Bootstrappers.Ninject.Tests.csproj
+++ b/src/Nancy.Bootstrappers.Ninject.Tests/Nancy.Bootstrappers.Ninject.Tests.csproj
@@ -31,10 +31,16 @@
4
+
+ ..\packages\Castle.Core.3.0.0.4001\lib\net40-client\Castle.Core.dll
+
False
..\packages\Ninject.3.0.1.10\lib\net40\Ninject.dll
+
+ ..\packages\Ninject.Extensions.Factory.3.0.1.0\lib\net40\Ninject.Extensions.Factory.dll
+
diff --git a/src/Nancy.Bootstrappers.Ninject.Tests/NinjectNancyBootstrapperFixture.cs b/src/Nancy.Bootstrappers.Ninject.Tests/NinjectNancyBootstrapperFixture.cs
index a442835..6746544 100644
--- a/src/Nancy.Bootstrappers.Ninject.Tests/NinjectNancyBootstrapperFixture.cs
+++ b/src/Nancy.Bootstrappers.Ninject.Tests/NinjectNancyBootstrapperFixture.cs
@@ -27,15 +27,16 @@ public void Should_be_able_to_resolve_engine()
}
[Fact]
- public void GetAllModules_Returns_As_MultiInstance()
+ public void GetAllModules_With_Different_Contexts_Returns_Different_Instances()
{
// Given
this.bootstrapper.GetEngine();
- var context = new NancyContext();
+ var context1 = new NancyContext();
+ var context2 = new NancyContext();
// When
- var output1 = this.bootstrapper.GetAllModules(context).FirstOrDefault(nm => nm.GetType() == typeof(FakeNancyModuleWithBasePath));
- var output2 = this.bootstrapper.GetAllModules(context).FirstOrDefault(nm => nm.GetType() == typeof(FakeNancyModuleWithBasePath));
+ var output1 = this.bootstrapper.GetAllModules(context1).FirstOrDefault(nm => nm.GetType() == typeof(FakeNancyModuleWithBasePath));
+ var output2 = this.bootstrapper.GetAllModules(context2).FirstOrDefault(nm => nm.GetType() == typeof(FakeNancyModuleWithBasePath));
// Then
output1.ShouldNotBeNull();
diff --git a/src/Nancy.Bootstrappers.Ninject.Tests/packages.config b/src/Nancy.Bootstrappers.Ninject.Tests/packages.config
index bbb1653..df833d2 100644
--- a/src/Nancy.Bootstrappers.Ninject.Tests/packages.config
+++ b/src/Nancy.Bootstrappers.Ninject.Tests/packages.config
@@ -1,6 +1,8 @@
+
+
\ No newline at end of file
diff --git a/src/Nancy.Bootstrappers.Ninject/FactoryModule.cs b/src/Nancy.Bootstrappers.Ninject/FactoryModule.cs
deleted file mode 100644
index 659989f..0000000
--- a/src/Nancy.Bootstrappers.Ninject/FactoryModule.cs
+++ /dev/null
@@ -1,68 +0,0 @@
-namespace Nancy.Bootstrappers.Ninject
-{
- using System;
- using System.Linq;
- using global::Ninject;
- using global::Ninject.Activation;
- using global::Ninject.Modules;
- using global::Ninject.Parameters;
-
- ///
- /// Helper module for Ninject, in order to be able to resolve dependencies.
- ///
- public class FactoryModule : NinjectModule
- {
- ///
- /// Loads the module into the kernel.
- ///
- public override void Load()
- {
- this.Kernel.Bind(typeof(Func<>)).ToMethod(CreateFunc).When(VerifyFactoryFunction);
- }
-
- private static bool VerifyFactoryFunction(IRequest request)
- {
- var genericArguments = request.Service.GetGenericArguments();
- if (genericArguments.Count() != 1)
- {
- return false;
- }
-
- var instanceType = genericArguments.Single();
- return request.ParentContext.Kernel.CanResolve(new Request(genericArguments[0], null, new IParameter[0], null, false, true)) ||
- TypeIsSelfBindable(instanceType);
- }
-
- private static object CreateFunc(IContext ctx)
- {
- var functionFactoryType = typeof(FunctionFactory<>).MakeGenericType(ctx.GenericArguments);
- var ctor = functionFactoryType.GetConstructors().Single();
- var functionFactory = ctor.Invoke(new object[] { ctx.Kernel });
- return functionFactoryType.GetMethod("Create").Invoke(functionFactory, new object[0]);
- }
-
- private static bool TypeIsSelfBindable(Type service)
- {
- return !service.IsInterface
- && !service.IsAbstract
- && !service.IsValueType
- && service != typeof(string)
- && !service.ContainsGenericParameters;
- }
-
- public class FunctionFactory
- {
- private readonly IKernel kernel;
-
- public FunctionFactory(IKernel kernel)
- {
- this.kernel = kernel;
- }
-
- public Func Create()
- {
- return () => this.kernel.Get();
- }
- }
- }
-}
\ No newline at end of file
diff --git a/src/Nancy.Bootstrappers.Ninject/Nancy.Bootstrappers.Ninject.csproj b/src/Nancy.Bootstrappers.Ninject/Nancy.Bootstrappers.Ninject.csproj
index a179b93..0ddf7bf 100644
--- a/src/Nancy.Bootstrappers.Ninject/Nancy.Bootstrappers.Ninject.csproj
+++ b/src/Nancy.Bootstrappers.Ninject/Nancy.Bootstrappers.Ninject.csproj
@@ -51,7 +51,6 @@
Properties\SharedAssemblyInfo.cs
-
diff --git a/src/Nancy.Bootstrappers.Ninject/NinjectNancyBootstrapper.cs b/src/Nancy.Bootstrappers.Ninject/NinjectNancyBootstrapper.cs
index 93e1da6..b7b6932 100644
--- a/src/Nancy.Bootstrappers.Ninject/NinjectNancyBootstrapper.cs
+++ b/src/Nancy.Bootstrappers.Ninject/NinjectNancyBootstrapper.cs
@@ -55,7 +55,7 @@ protected override sealed INancyEngine GetEngineInternal()
/// Container instance
protected override IKernel GetApplicationContainer()
{
- return new StandardKernel(new[] { new FactoryModule() });
+ return new StandardKernel();
}
///
diff --git a/src/Nancy.Bootstrappers.Ninject/nancy.bootstrappers.ninject.nuspec b/src/Nancy.Bootstrappers.Ninject/nancy.bootstrappers.ninject.nuspec
index 62ed1d4..2a8217a 100644
--- a/src/Nancy.Bootstrappers.Ninject/nancy.bootstrappers.ninject.nuspec
+++ b/src/Nancy.Bootstrappers.Ninject/nancy.bootstrappers.ninject.nuspec
@@ -16,6 +16,7 @@
+
Nancy Ninject