Autofac可以很好的集成到项目中,这里这介绍WebForm
和MVC
项目的集成,所用例子参考Autofac依赖注入应用。其他项目的集成可以参考官网api
手动集成到项目
比较老方式
- 在Global文件声明一静态
container
- 在
Application_Start
方法内这次类型 - 使用方式
Container.Resolve<ProductService>();
这种方式的缺点大量的类型写入不同文件,一旦需要修改需要修改多处
ASp.net WebForm项目集成
- 引入
Autofac.Web
包 - webconfig文件添加Ihandler注册
- Global文件中注入
- page类中使用 声明属性 直接可在方法中使用
ASP.net MVC 中
因controller是动态生成的对象,更方便集成
- 引入包
Autofac.Mvc5
- Global文件中注入
- controller构造函数注入
public class ProductController : Controller
{
private ProductService _productService;
public ProductController(ProductService productService)
{
_productService = productService;
}
// GET: Product
public ActionResult Index()
{
string categoryName = "Hats";
var list = _productService.GetAllProductsIn(categoryName);
return View(list);
}
}