使用基于ninject和约定的绑定处理应用程序设置

时间:2012-08-10 18:32:38

标签: asp.net-mvc-3 ninject application-settings ninject-conventions

我在MVC3应用程序中使用Ninject,并尝试切换到基于约定的绑定与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软件包,在App_Start / NinjectWebCommon.cs的RegisterServices中,这是我目前所拥有的:

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

1 个答案:

答案 0 :(得分:1)

Ninject Conventions可以为您提供90%的工作,费用为10%。如果您认为需要在其上添加额外的绑定,请不要担心。

但是在你的场景中,我不会太担心不通过构造函数注入连接字符串而只是手动抓取它。或者,您可以设置一个IDatabaseConfig接口和实现,它可以为您完成,您的基于约定的绑定应该只是选择它。我们在项目的后期做了