protected override Type VisitSingleton(SingletonCallSite singletonCallSite, CallSiteValidatorState state)
 {
     state.Singleton = singletonCallSite;
     return(VisitCallSite(singletonCallSite.ServiceCallSite, state));
 }
 protected override object VisitSingleton(SingletonCallSite singletonCallSite, ServiceProvider provider)
 {
     return(VisitScoped(singletonCallSite, provider.Root));
 }
 protected abstract TResult VisitSingleton(SingletonCallSite singletonCallSite, TArgument argument);