@@ -32,7 +32,9 @@ private static void DoInjectionScoped(DependencyObject d, DependencyPropertyChan
32
32
33
33
if ( CompositionRoot . ServiceProvider is null ) return ;
34
34
35
- var scope = CompositionRoot . ServiceProvider . GetRequiredService < IInjecter > ( ) . InjectIntoType ( d . GetType ( ) , d ) ;
35
+ CompositionRoot . ServiceProvider
36
+ . GetRequiredService < IInjecter > ( )
37
+ . InjectIntoType ( d . GetType ( ) , d ) ;
36
38
37
39
var behavior = ( DisposeBehaviour ? ) e . NewValue ;
38
40
@@ -49,13 +51,14 @@ void OnLoaded(object sender, EventArgs eventArgs)
49
51
50
52
var window = Window . GetWindow ( d ) ;
51
53
52
- void OnWindowClosed ( object _ , EventArgs __ )
54
+ void OnWindowClosed ( object ? _ , EventArgs __ )
53
55
{
54
56
window . Closed -= OnWindowClosed ;
55
57
window = null ;
56
58
57
- scope ! . Dispose ( ) ;
58
- scope = null ;
59
+ CompositionRoot . ServiceProvider
60
+ . GetRequiredService < IScopeStore > ( )
61
+ . DisposeScope ( d ) ;
59
62
60
63
if ( d is IDisposable disposable ) disposable . Dispose ( ) ;
61
64
d = null ! ;
@@ -70,12 +73,13 @@ void OnWindowClosed(object _, EventArgs __)
70
73
}
71
74
case DisposeBehaviour . OnDispatcherShutdown :
72
75
{
73
- void OnControlShutdown ( object sender , EventArgs eventArgs )
76
+ void OnControlShutdown ( object ? sender , EventArgs __ )
74
77
{
75
78
Application . Current . Dispatcher . ShutdownFinished -= OnControlShutdown ;
76
79
77
- scope ! . Dispose ( ) ;
78
- scope = null ;
80
+ CompositionRoot . ServiceProvider
81
+ . GetRequiredService < IScopeStore > ( )
82
+ . DisposeScope ( d ) ;
79
83
80
84
if ( d is IDisposable disposable ) disposable . Dispose ( ) ;
81
85
d = null ! ;
@@ -89,13 +93,14 @@ void OnControlShutdown(object sender, EventArgs eventArgs)
89
93
{
90
94
if ( d is not FrameworkElement f ) throw new InvalidOperationException ( $ "{ d } is not of type { nameof ( FrameworkElement ) } ") ;
91
95
92
- void OnControlUnloaded ( object sender , RoutedEventArgs routedEventArgs )
96
+ void OnControlUnloaded ( object ? _ , RoutedEventArgs __ )
93
97
{
94
98
f . Unloaded -= OnControlUnloaded ;
95
99
f = null ! ;
96
100
97
- scope ! . Dispose ( ) ;
98
- scope = null ;
101
+ CompositionRoot . ServiceProvider
102
+ . GetRequiredService < IScopeStore > ( )
103
+ . DisposeScope ( d ) ;
99
104
100
105
if ( d is IDisposable disposable ) disposable . Dispose ( ) ;
101
106
d = null ! ;
0 commit comments