1

我在 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());
4

1 回答 1

1

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

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

于 2012-08-10T20:54:57.533 回答