@@ -59,6 +59,18 @@ public event UnhandledExceptionEventHandler UnhandledSynchronizationException
5959 /// <param name="serviceProvider">The <see cref="IServiceProvider"/> to be used when initializing components.</param>
6060 /// <param name="loggerFactory">The <see cref="ILoggerFactory"/>.</param>
6161 public Renderer ( IServiceProvider serviceProvider , ILoggerFactory loggerFactory )
62+ : this ( serviceProvider , loggerFactory , GetComponentActivatorOrDefault ( serviceProvider ) )
63+ {
64+ // This overload is provided for back-compatibility
65+ }
66+
67+ /// <summary>
68+ /// Constructs an instance of <see cref="Renderer"/>.
69+ /// </summary>
70+ /// <param name="serviceProvider">The <see cref="IServiceProvider"/> to be used when initializing components.</param>
71+ /// <param name="loggerFactory">The <see cref="ILoggerFactory"/>.</param>
72+ /// <param name="componentActivator">The <see cref="IComponentActivator"/>.</param>
73+ public Renderer ( IServiceProvider serviceProvider , ILoggerFactory loggerFactory , IComponentActivator componentActivator )
6274 {
6375 if ( serviceProvider is null )
6476 {
@@ -70,12 +82,20 @@ public Renderer(IServiceProvider serviceProvider, ILoggerFactory loggerFactory)
7082 throw new ArgumentNullException ( nameof ( loggerFactory ) ) ;
7183 }
7284
85+ if ( componentActivator is null )
86+ {
87+ throw new ArgumentNullException ( nameof ( componentActivator ) ) ;
88+ }
89+
7390 _serviceProvider = serviceProvider ;
7491 _logger = loggerFactory . CreateLogger < Renderer > ( ) ;
92+ _componentFactory = new ComponentFactory ( componentActivator ) ;
93+ }
7594
76- var componentActivator = serviceProvider . GetService < IComponentActivator > ( )
95+ private static IComponentActivator GetComponentActivatorOrDefault ( IServiceProvider serviceProvider )
96+ {
97+ return serviceProvider . GetService < IComponentActivator > ( )
7798 ?? DefaultComponentActivator . Instance ;
78- _componentFactory = new ComponentFactory ( componentActivator ) ;
7999 }
80100
81101 /// <summary>
0 commit comments