@@ -17,6 +17,8 @@ namespace HandlebarsDotNet
1717{
1818 internal class HandlebarsConfigurationAdapter : ICompiledHandlebarsConfiguration
1919 {
20+ private readonly List < object > _observers = new List < object > ( ) ;
21+
2022 public HandlebarsConfigurationAdapter ( HandlebarsConfiguration configuration )
2123 {
2224 UnderlingConfiguration = configuration ;
@@ -85,11 +87,8 @@ private ObservableIndex<PathInfoLight, Ref<IHelperDescriptor<TOptions>>, IEquali
8587
8688 var target = new ObservableIndex < PathInfoLight , Ref < IHelperDescriptor < TOptions > > , IEqualityComparer < PathInfoLight > > ( equalityComparer , existingHelpers ) ;
8789
88- var helpersObserver = new ObserverBuilder < ObservableEvent < IHelperDescriptor < TOptions > > > ( )
89- . OnEvent <
90- DictionaryAddedObservableEvent < string , IHelperDescriptor < TOptions > > ,
91- ObservableIndex < PathInfoLight , Ref < IHelperDescriptor < TOptions > > , IEqualityComparer < PathInfoLight > >
92- > ( target ,
90+ var observer = ObserverBuilder < ObservableEvent < IHelperDescriptor < TOptions > > > . Create ( target )
91+ . OnEvent < DictionaryAddedObservableEvent < string , IHelperDescriptor < TOptions > > > (
9392 ( @event , state ) =>
9493 {
9594 PathInfoLight key = $ "[{ @event . Key } ]";
@@ -103,7 +102,9 @@ private ObservableIndex<PathInfoLight, Ref<IHelperDescriptor<TOptions>>, IEquali
103102 } )
104103 . Build ( ) ;
105104
106- source . As < ObservableIndex < string , IHelperDescriptor < TOptions > , StringEqualityComparer > > ( ) ? . Subscribe ( helpersObserver ) ;
105+ _observers . Add ( observer ) ;
106+
107+ source . As < ObservableIndex < string , IHelperDescriptor < TOptions > , StringEqualityComparer > > ( ) ? . Subscribe ( observer ) ;
107108
108109 return target ;
109110 }
@@ -125,13 +126,12 @@ private ObservableList<IObjectDescriptorProvider> CreateObjectDescriptorProvider
125126 }
126127 . AddMany ( descriptorProviders ) ;
127128
128- var observer = new ObserverBuilder < ObservableEvent < IObjectDescriptorProvider > > ( )
129- . OnEvent <
130- AddedObservableEvent < IObjectDescriptorProvider > ,
131- ObservableList < IObjectDescriptorProvider >
132- > ( objectDescriptorProviders , ( @event , state ) => { state . Add ( @event . Value ) ; } )
129+ var observer = ObserverBuilder < ObservableEvent < IObjectDescriptorProvider > > . Create ( objectDescriptorProviders )
130+ . OnEvent < AddedObservableEvent < IObjectDescriptorProvider > > ( ( @event , state ) => { state . Add ( @event . Value ) ; } )
133131 . Build ( ) ;
134132
133+ _observers . Add ( observer ) ;
134+
135135 descriptorProviders . Subscribe ( observer ) ;
136136
137137 return objectDescriptorProviders ;
0 commit comments