Обработка настроек приложения с помощью привязки на основе привязки и соглашения

Я использую Ninject в приложении MVC3 и пытаюсь перейти на привязку, основанную на соглашениях, с помощью ninject.extensions.conventions.

Теперь допустим, что у меня есть класс, которому нужен доступ к настройкам приложения, таким как:

public class Foo : IFoo
{
  public Foo(string connectionString)
  { ... }
}

Я думаю, что я понимаю, как сделать нормальное связывание с Ninject, как это:

Bind<IFoo>()
  .To<Foo>()
  .WithConstructorArgument(
    "connectionString",
    ConfigurationManager.ConnectionStrings["Default"].ConnectionString);

Но как мне сделать это, используя вместо этого соглашения?


Дополнительная информация при необходимости:

Я использую пакет nuget Ninject.MVC3, а в AppSStart/NinjectWebCommon.cs's RegisterServices это все, что у меня сейчас есть:

kernel.Bind(x => x
                .FromAssembliesMatching("*")
                .SelectAllClasses()
                .BindDefaultInterface());

1 ответ

Решение

Соглашения Ninject помогут вам получить 90% работы за 10% стоимости. Если вы считаете, что вам нужно добавить дополнительное связывание поверх него, не беспокойтесь об этом.

Но в вашем сценарии я бы не стал слишком беспокоиться о том, чтобы не вводить строку подключения через конструктор и просто захватывать ее вручную. В качестве альтернативы, вы можете настроить интерфейс и реализацию IDatabaseConfig, которые могли бы сделать это для вас, и ваша привязка, основанная на соглашениях, должна просто подобрать ее. Мы делаем позже на наших проектах

Другие вопросы по тегам