使用Ninject解析连接字符串

时间:2012-04-05 06:04:21

标签: asp.net-mvc ninject

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

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

实施例

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

是否可以绑定&#34; connectionString&#34;直接到全局级别的配置值,而不是在每个绑定时指定?

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分: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();