【问题标题】:Handling application settings with ninject and convention based binding使用 ninject 和基于约定的绑定处理应用程序设置
【发布时间】:2012-08-10 18:32:37
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 我做了类似您的 IDatabaseConfig 想法的事情,并且效果很好。很高兴知道我正朝着一个好的方向前进,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-29
    相关资源
    最近更新 更多