diff --git a/Artemis/Artemis/Artemis.csproj b/Artemis/Artemis/Artemis.csproj
index 9bb8498db..948cf327a 100644
--- a/Artemis/Artemis/Artemis.csproj
+++ b/Artemis/Artemis/Artemis.csproj
@@ -120,20 +120,16 @@
-
- ..\packages\Autofac.4.0.0-rc1-177\lib\net45\Autofac.dll
+
+ ..\packages\Caliburn.Micro.Core.3.0.1\lib\net45\Caliburn.Micro.dll
True
-
- ..\packages\Caliburn.Micro.Core.2.0.2\lib\net45\Caliburn.Micro.dll
+
+ ..\packages\Caliburn.Micro.3.0.1\lib\net45\Caliburn.Micro.Platform.dll
True
-
- ..\packages\Caliburn.Micro.AutofacBootstrap.2.0.9-beta\lib\net40\Caliburn.Micro.Autofac.dll
- True
-
-
- ..\packages\Caliburn.Micro.2.0.2\lib\net45\Caliburn.Micro.Platform.dll
+
+ ..\packages\Caliburn.Micro.3.0.1\lib\net45\Caliburn.Micro.Platform.Core.dll
True
@@ -175,8 +171,12 @@
..\packages\Newtonsoft.Json.8.0.3\lib\net45\Newtonsoft.Json.dll
True
+
+ ..\packages\Ninject.3.2.2.0\lib\net45-full\Ninject.dll
+ True
+
- ..\packages\NLog.4.3.2\lib\net45\NLog.dll
+ ..\packages\NLog.4.3.3\lib\net45\NLog.dll
True
@@ -202,7 +202,10 @@
-
+
+ ..\packages\Caliburn.Micro.3.0.1\lib\net45\System.Windows.Interactivity.dll
+ True
+
@@ -223,10 +226,6 @@
-
- ..\packages\XamlAnimatedGif.1.1.2\lib\net45\XamlAnimatedGif.dll
- True
-
..\packages\Extended.Wpf.Toolkit.2.7\lib\net40\Xceed.Wpf.AvalonDock.dll
True
@@ -286,6 +285,7 @@
+
@@ -371,6 +371,8 @@
+
+
True
@@ -414,6 +416,7 @@
+
@@ -561,12 +564,12 @@
-
-
+
+
@@ -594,6 +597,10 @@
MSBuild:Compile
Designer
+
+ MSBuild:Compile
+ Designer
+
Designer
MSBuild:Compile
diff --git a/Artemis/Artemis/ArtemisBootstrapper.cs b/Artemis/Artemis/ArtemisBootstrapper.cs
index 80ef08c50..31c692957 100644
--- a/Artemis/Artemis/ArtemisBootstrapper.cs
+++ b/Artemis/Artemis/ArtemisBootstrapper.cs
@@ -1,27 +1,33 @@
-using System.Diagnostics;
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
using System.Linq;
using System.Reflection;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Forms;
using Artemis.ViewModels;
-using Autofac;
using Caliburn.Micro;
-using Caliburn.Micro.Autofac;
+using Ninject;
using Application = System.Windows.Application;
using MessageBox = System.Windows.Forms.MessageBox;
using MouseEventArgs = System.Windows.Input.MouseEventArgs;
namespace Artemis
{
- public class ArtemisBootstrapper : AutofacBootstrapper
+ public class ArtemisBootstrapper : BootstrapperBase
{
+ private IKernel _kernel;
+
public ArtemisBootstrapper()
{
CheckDuplicateInstances();
-
Initialize();
+ BindSpecialValues();
+ }
+ private void BindSpecialValues()
+ {
MessageBinder.SpecialValues.Add("$scaledmousex", ctx =>
{
var img = ctx.Source as Image;
@@ -64,14 +70,35 @@ namespace Artemis
});
}
- protected override void ConfigureContainer(ContainerBuilder builder)
+ protected override void Configure()
{
- base.ConfigureContainer(builder);
+ _kernel = new StandardKernel();
+ _kernel.Bind().To().InSingletonScope();
+ _kernel.Bind().To().InSingletonScope();
+ }
- // create a window manager instance to be used by everyone asking for one (including Caliburn.Micro)
- builder.RegisterInstance(new WindowManager());
- builder.RegisterType();
- builder.RegisterType();
+ protected override void OnExit(object sender, EventArgs e)
+ {
+ _kernel.Dispose();
+ base.OnExit(sender, e);
+ }
+
+ protected override object GetInstance(Type service, string key)
+ {
+ if (service == null)
+ throw new ArgumentNullException(nameof(service));
+
+ return _kernel.Get(service);
+ }
+
+ protected override IEnumerable