public inSingletonScope(): interfaces.ProvideWhenOnSyntax<T> {
        let bindingWhenOnSyntax = (bind: inversifyInterfaces.Bind, target: any) =>
            this._bindingInSyntax(bind, target).inSingletonScope();
        let inDoneSyntax = new ProvideDoneSyntax(bindingWhenOnSyntax);
        let provideWhenSyntax = new ProvideWhenSyntax<T>(bindingWhenOnSyntax, inDoneSyntax);