Asp.net mvc 3 使用ninject和基于约定的绑定处理应用程序设置

Asp.net mvc 3 使用ninject和基于约定的绑定处理应用程序设置,asp.net-mvc-3,ninject,application-settings,ninject-conventions,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>() .WithConstru

我正在MVC3应用程序中使用Ninject,并尝试使用Ninject.extensions.conventions切换到基于约定的绑定

现在假设我有一个类需要访问应用程序设置,例如:

public class Foo : IFoo
{
  public Foo(string connectionString)
  { ... }
}
我想我了解如何使用Ninject进行正常绑定,如下所示:

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

Ninject约定可以让您以10%的成本完成90%的工作。如果你认为你需要在上面添加一个额外的绑定,不用担心


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

项目约定可以让您以10%的成本完成90%的工作。如果你认为你需要在上面添加一个额外的绑定,不用担心


但是在您的场景中,我不会太担心不通过构造函数注入连接字符串而只是手动获取它。或者,您可以设置一个IDatabaseConfig接口和实现来为您完成这项工作,而您基于约定的绑定应该能够正确地完成这项工作。我们以后再做我们的项目

我做了一些类似于你的IDatabaseConfig想法的事情,而且效果很好。很高兴知道我的方向很好,谢谢!我做了一些像你的IDatabaseConfig想法的事情,效果很好。很高兴知道我的方向很好,谢谢!
kernel.Bind(x => x
                .FromAssembliesMatching("*")
                .SelectAllClasses()
                .BindDefaultInterface());