我正在使用MVC,我的应用程序是一个可以连接到多个数据源的管理应用程序。
我想知道如何将连接字符串传递给控制器。任何我可以做研究的建议都会非常感激。
到目前为止,我见过这样的例子:
protected IProductsRepository ProductsRepository = null;
public ProductsController(IProductsRepository productsRepository)
{
ProductsRepository = productsRepository;
}
但是控制器如何为productsRepository注入正确的值?我看到了一些IOC产品,但我不知道从哪里开始,这些产品不适合大型应用吗?
答案 0 :(得分:2)
根据您的全部要求,您可以参考以下内容:
像StructureMap这样的依赖注入框架。这是一个article。
要自己简单地处理控制器构造,您需要创建一个实现IControllerFactory
的自定义控制器工厂。 MVC Application Execution Process上的这篇文章可以帮助您更好地理解。
实施IControllerFactory
后,您可以将其连接到Global.asax中,如下所示:
protected void Application_Start()
{
RegisterRoutes(RouteTable.Routes);
ControllerBuilder.Current.SetControllerFactory(typeof(CustomControllerFactory));
}
答案 1 :(得分:1)
我会使用Unity作为IOC容器。它不是.NET框架的一部分,但它来自Microsoft。另一种选择是MEF。这是框架的一部分,但不仅仅是IOC框架。
编辑: 正如@Daniel建议的那样,http://nuget.org/packages/Unity.Mvc3有一个用于MVC3的Nuget包。我在我的项目中经常使用Unity。