Является ли привязка ToConstant и вызов InSingletonScope избыточными? - PullRequest
22 голосов
/ 13 сентября 2011

Ну, этот вопрос довольно просто сформулирован заголовком.

Для локальной переменной factory:

var factory = Fluently.Configure()
...

Эти две строки эквивалентны:

Bind<ISessionFactory>().ToConstant(factory).InSingletonScope();

и

Bind<ISessionFactory>().ToConstant(factory);

1 Ответ

24 голосов
/ 13 сентября 2011

В последней версии ninject, когда вы создаете привязку ToConstant, она автоматически устанавливает Scope на Singleton.Таким образом, часть InSingletonScope() в вашем примере является избыточной.Из базового кода:

    /// <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;
    }
...