1
1
using Extensibility ;
2
- using Ninject ;
3
- using Ninject . Extensions . Factory ;
4
- using Rubberduck . Root ;
5
2
using Rubberduck . UI ;
6
3
using System ;
7
4
using System . ComponentModel ;
13
10
using System . Runtime . InteropServices ;
14
11
using System . Windows . Forms ;
15
12
using System . Windows . Threading ;
13
+ using Castle . Windsor ;
16
14
using Microsoft . Vbe . Interop ;
17
- using Ninject . Extensions . Interception ;
18
15
using NLog ;
16
+ using Rubberduck . Root ;
19
17
using Rubberduck . Settings ;
20
18
using Rubberduck . SettingsProvider ;
21
19
using Rubberduck . VBEditor . Events ;
@@ -41,7 +39,9 @@ public class _Extension : IDTExtensibility2
41
39
private bool _isInitialized ;
42
40
private bool _isBeginShutdownExecuted ;
43
41
44
- private IKernel _kernel ;
42
+ private GeneralSettings _initialSettings ;
43
+
44
+ private IWindsorContainer _container ;
45
45
private App _app ;
46
46
private readonly Logger _logger = LogManager . GetCurrentClassLogger ( ) ;
47
47
@@ -152,12 +152,12 @@ private void InitializeAddIn()
152
152
} ;
153
153
var configProvider = new GeneralConfigProvider ( configLoader ) ;
154
154
155
- var settings = configProvider . Create ( ) ;
156
- if ( settings != null )
155
+ _initialSettings = configProvider . Create ( ) ;
156
+ if ( _initialSettings != null )
157
157
{
158
158
try
159
159
{
160
- var cultureInfo = CultureInfo . GetCultureInfo ( settings . Language . Code ) ;
160
+ var cultureInfo = CultureInfo . GetCultureInfo ( _initialSettings . Language . Code ) ;
161
161
Dispatcher . CurrentDispatcher . Thread . CurrentUICulture = cultureInfo ;
162
162
}
163
163
catch ( CultureNotFoundException )
@@ -170,7 +170,7 @@ private void InitializeAddIn()
170
170
}
171
171
172
172
Splash splash = null ;
173
- if ( settings . ShowSplash )
173
+ if ( _initialSettings . ShowSplash )
174
174
{
175
175
splash = new Splash
176
176
{
@@ -210,10 +210,9 @@ private void Startup()
210
210
currentDomain . UnhandledException += HandlAppDomainException ;
211
211
currentDomain . AssemblyResolve += LoadFromSameFolder ;
212
212
213
- _kernel = new StandardKernel ( new NinjectSettings { LoadExtensions = true } , new FuncModule ( ) , new DynamicProxyModule ( ) ) ;
214
- _kernel . Load ( new RubberduckModule ( _ide , _addin ) ) ;
215
-
216
- _app = _kernel . Get < App > ( ) ;
213
+ _container = new WindsorContainer ( ) . Install ( new RubberduckIoCInstaller ( _ide , _addin , _initialSettings ) ) ;
214
+
215
+ _app = _container . Resolve < App > ( ) ;
217
216
_app . Startup ( ) ;
218
217
219
218
_isInitialized = true ;
@@ -253,11 +252,11 @@ private void ShutdownAddIn()
253
252
_app = null ;
254
253
}
255
254
256
- if ( _kernel != null )
255
+ if ( _container != null )
257
256
{
258
257
_logger . Log ( LogLevel . Trace , "Disposing IoC container..." ) ;
259
- _kernel . Dispose ( ) ;
260
- _kernel = null ;
258
+ _container . Dispose ( ) ;
259
+ _container = null ;
261
260
}
262
261
263
262
_isInitialized = false ;
0 commit comments