Ответ 1
В последней версии ninject, когда вы создаете привязку ToConstant, она автоматически устанавливает область действия Singleton. Таким образом, часть InSingletonScope()
в вашем примере является избыточной. Из базы кода ninject:
/// <summary>
/// Indicates that the service should be bound to the specified constant value.
/// </summary>
/// <param name="value">The constant value.</param>
public IBindingWhenInNamedWithOrOnSyntax<T> ToConstant(T value)
{
Binding.ProviderCallback = ctx => new ConstantProvider<T>(value);
Binding.Target = BindingTarget.Constant;
Binding.ScopeCallback = StandardScopeCallbacks.Singleton;
return this;
}