Обработка настроек приложения с помощью привязки на основе привязки и соглашения
Я использую 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, которые могли бы сделать это для вас, и ваша привязка, основанная на соглашениях, должна просто подобрать ее. Мы делаем позже на наших проектах