@@ -12,7 +12,9 @@ public class TestRenderer : Renderer, ITestRenderer
1212{
1313 private static readonly Type RendererType = typeof ( Renderer ) ;
1414 private static readonly FieldInfo IsBatchInProgressField = RendererType . GetField ( "_isBatchInProgress" , BindingFlags . Instance | BindingFlags . NonPublic ) ! ;
15+ #if ! NET8_0_OR_GREATER
1516 private static readonly MethodInfo GetRequiredComponentStateMethod = RendererType . GetMethod ( "GetRequiredComponentState" , BindingFlags . Instance | BindingFlags . NonPublic ) ! ;
17+ #endif
1618
1719 private readonly object renderTreeUpdateLock = new ( ) ;
1820 private readonly Dictionary < int , IRenderedFragmentBase > renderedComponents = new ( ) ;
@@ -96,7 +98,11 @@ public IRenderedComponentBase<TComponent> RenderComponent<TComponent>(ComponentP
9698 EventArgs eventArgs ) => DispatchEventAsync ( eventHandlerId , fieldInfo , eventArgs , ignoreUnknownEventHandlers : false ) ;
9799
98100 /// <inheritdoc/>
101+ #if ! NET8_0_OR_GREATER
99102 public Task DispatchEventAsync (
103+ #else
104+ public new Task DispatchEventAsync (
105+ #endif
100106 ulong eventHandlerId ,
101107 EventFieldInfo fieldInfo ,
102108 EventArgs eventArgs ,
@@ -188,6 +194,17 @@ public void DisposeComponents()
188194 AssertNoUnhandledExceptions ( ) ;
189195 }
190196 }
197+
198+ #if NET8_0_OR_GREATER
199+ /// <inheritdoc/>
200+ protected override IComponent ResolveComponentForRenderMode ( Type componentType , int ? parentComponentId ,
201+ IComponentActivator componentActivator , IComponentRenderMode renderMode )
202+
203+ {
204+ ArgumentNullException . ThrowIfNull ( componentActivator ) ;
205+ return componentActivator . CreateInstance ( componentType ) ;
206+ }
207+ #endif
191208
192209 /// <inheritdoc/>
193210 internal void SetDirectParameters ( IRenderedFragmentBase renderedComponent , ParameterView parameters )
@@ -207,9 +224,14 @@ internal void SetDirectParameters(IRenderedFragmentBase renderedComponent, Param
207224 try
208225 {
209226 IsBatchInProgress = true ;
210-
227+
228+ #if NET8_0_OR_GREATER
229+ var setDirectParametersMethod = typeof ( ComponentState ) . GetMethod ( "SetDirectParameters" , BindingFlags . NonPublic | BindingFlags . Instance ) ! ;
230+ var componentState = GetComponentState ( renderedComponent . ComponentId ) ;
231+ #else
211232 var componentState = GetRequiredComponentStateMethod . Invoke ( this , new object [ ] { renderedComponent . ComponentId } ) ! ;
212233 var setDirectParametersMethod = componentState . GetType ( ) . GetMethod ( "SetDirectParameters" , BindingFlags . Public | BindingFlags . Instance ) ! ;
234+ #endif
213235 setDirectParametersMethod . Invoke ( componentState , new object [ ] { parameters } ) ;
214236 }
215237 catch ( TargetInvocationException ex ) when ( ex . InnerException is not null )
0 commit comments