@@ -81,17 +81,24 @@ public static IHtmlString React<T>(
8181 string containerClass = null
8282 )
8383 {
84- var reactComponent = Environment . CreateComponent ( componentName , props , containerId , clientOnly ) ;
85- if ( ! string . IsNullOrEmpty ( htmlTag ) )
84+ try
8685 {
87- reactComponent . ContainerTag = htmlTag ;
86+ var reactComponent = Environment . CreateComponent ( componentName , props , containerId , clientOnly ) ;
87+ if ( ! string . IsNullOrEmpty ( htmlTag ) )
88+ {
89+ reactComponent . ContainerTag = htmlTag ;
90+ }
91+ if ( ! string . IsNullOrEmpty ( containerClass ) )
92+ {
93+ reactComponent . ContainerClass = containerClass ;
94+ }
95+ var result = reactComponent . RenderHtml ( clientOnly , serverOnly ) ;
96+ return new HtmlString ( result ) ;
8897 }
89- if ( ! string . IsNullOrEmpty ( containerClass ) )
98+ finally
9099 {
91- reactComponent . ContainerClass = containerClass ;
100+ Environment . ReturnEngineToPool ( ) ;
92101 }
93- var result = reactComponent . RenderHtml ( clientOnly , serverOnly ) ;
94- return new HtmlString ( result ) ;
95102 }
96103
97104 /// <summary>
@@ -114,31 +121,38 @@ public static IHtmlString ReactWithInit<T>(
114121 T props ,
115122 string htmlTag = null ,
116123 string containerId = null ,
117- bool clientOnly = false ,
124+ bool clientOnly = false ,
118125 string containerClass = null
119126 )
120127 {
121- var reactComponent = Environment . CreateComponent ( componentName , props , containerId , clientOnly ) ;
122- if ( ! string . IsNullOrEmpty ( htmlTag ) )
123- {
124- reactComponent . ContainerTag = htmlTag ;
125- }
126- if ( ! string . IsNullOrEmpty ( containerClass ) )
128+ try
127129 {
128- reactComponent . ContainerClass = containerClass ;
129- }
130- var html = reactComponent . RenderHtml ( clientOnly ) ;
130+ var reactComponent = Environment . CreateComponent ( componentName , props , containerId , clientOnly ) ;
131+ if ( ! string . IsNullOrEmpty ( htmlTag ) )
132+ {
133+ reactComponent . ContainerTag = htmlTag ;
134+ }
135+ if ( ! string . IsNullOrEmpty ( containerClass ) )
136+ {
137+ reactComponent . ContainerClass = containerClass ;
138+ }
139+ var html = reactComponent . RenderHtml ( clientOnly ) ;
131140
132141#if LEGACYASPNET
133- var script = new TagBuilder ( "script" )
134- {
135- InnerHtml = reactComponent . RenderJavaScript ( )
136- } ;
142+ var script = new TagBuilder ( "script" )
143+ {
144+ InnerHtml = reactComponent . RenderJavaScript ( )
145+ } ;
137146#else
138147 var script = new TagBuilder ( "script" ) ;
139148 script . InnerHtml . AppendHtml ( reactComponent . RenderJavaScript ( ) ) ;
140149#endif
141- return new HtmlString ( html + System . Environment . NewLine + script . ToString ( ) ) ;
150+ return new HtmlString ( html + System . Environment . NewLine + script . ToString ( ) ) ;
151+ }
152+ finally
153+ {
154+ Environment . ReturnEngineToPool ( ) ;
155+ }
142156 }
143157
144158 /// <summary>
@@ -148,18 +162,25 @@ public static IHtmlString ReactWithInit<T>(
148162 /// <returns>JavaScript for all components</returns>
149163 public static IHtmlString ReactInitJavaScript ( this IHtmlHelper htmlHelper , bool clientOnly = false )
150164 {
151- var script = Environment . GetInitJavaScript ( clientOnly ) ;
152- #if LEGACYASPNET
153- var tag = new TagBuilder ( "script" )
165+ try
154166 {
155- InnerHtml = script
156- } ;
157- return new HtmlString ( tag . ToString ( ) ) ;
167+ var script = Environment . GetInitJavaScript ( clientOnly ) ;
168+ #if LEGACYASPNET
169+ var tag = new TagBuilder ( "script" )
170+ {
171+ InnerHtml = script
172+ } ;
173+ return new HtmlString ( tag . ToString ( ) ) ;
158174#else
159175 var tag = new TagBuilder ( "script" ) ;
160176 tag . InnerHtml . AppendHtml ( script ) ;
161177 return tag ;
162178#endif
179+ }
180+ finally
181+ {
182+ Environment . ReturnEngineToPool ( ) ;
183+ }
163184 }
164185 }
165186}
0 commit comments