0

我在我的 ASP.NET MVC 项目中使用 Ninject 进行依赖注入。我有很多存储库类,每个类都在构造函数中使用连接字符串参数。

目前对于每个映射,我也必须传递连接字符串。

前任。

Bind<INewsRepository>().To<NewsRepository>().WithConstructorArgument("connectionString", "Data Source=...");
Bind<IProductsRepository>().To<ProductsRepository>().WithConstructorArgument("connectionString", "Data Source=...");

是否可以将“connectionString”直接绑定到全局级别的配置值,而不是在每个绑定中指定?

4

2 回答 2

4

我的解决方案是:将连接字符串包装在一个对象中,比如 ConnectionStringWrapper 并创建一个接口 IConnectionStringWrapper。使用存储库中的接口并将 ConnectionStringWrapper 绑定到使用 Ninjects 的接口。

于 2012-04-05T08:54:24.563 回答
3

这是我想出的最好的

创建扩展方法

    public static class IBindingExtensions
    {
         public static IBindingWithOrOnSyntax<T> WithConnectionString<T>(this IBindingWhenInNamedWithOrOnSyntax<T> binding)
         {
             return binding.WithConstructorArgument("connectionString", "Data Source=..");
         }
    }

并为每个连接字符串参数绑定调用它

Bind<INewsRepository>().To<NewsRepository>().WithConnectionString();
于 2012-04-05T07:58:16.570 回答