private void InvokeResolvePipeline(int extensionIndex, ResolveInvocation invocation)
{
if (extensionIndex >= resolveExtensions.Length)
{
invocation.ReturnValue = ResolveCore(invocation.Context, invocation.DecommissionRequired,
invocation.InstanceRequired);
return;
}
var nextIndex = extensionIndex + 1;
invocation.SetProceedDelegate(() => InvokeResolvePipeline(nextIndex, invocation));
resolveExtensions[extensionIndex].Intercept(invocation);
}
}