public VisualTreeRunContext(
     IDIIntegration diIntegration, DependencyObject root, string targetMethodName,
     IEnumerable <object?> inputParameters)
 {
     DIIntegration    = diIntegration;
     Root             = root;
     TargetMethodName = targetMethodName;
     InputParameters  = inputParameters.ToArray();
     Targets          = TargetSelector.ResolveTarget(
         Root, diIntegration.GetRequired <TargetListCompositeExpander>());
     CandidateParameters =
         DIIntegration.GetRequired <ParameterListCompositeExpander>()
         .Expand(InputParameters.Concat(Targets));
 }