AutoFac属性自动注入
来源:互联网 发布:cms系统开发教程 编辑:程序博客网 时间:2024/05/22 03:47
大多数时候,我们都是以下面这种方式用Autofac来实现依赖注入:
// Create the builder with which components/services are registered. var builder = new ContainerBuilder(); // Register all the dependencies builder.RegisterType<BookManager>().As<IBookManager>(); builder.RegisterType<AuthorManager>().As<IAuthorManager>(); builder.RegisterType<BookRatingManager>().As<IBookRatingManager>(); builder.RegisterType<AuthorRatingManager>().As<IAuthorRatingManager>();
上面的写法,有如下问题:
开放封闭原则被违反,因为每一个时间开发人员都需要手动注册依赖项。
在代码合并过程中,开发人员会很好地错过某些行,这可能会导致问题的产生。
随着代码库的增长,会出现维护代码的问题。
以上问题,我们可以考虑使用属性(Attribute)来解决此问题:
1.编写如下代码
using System;namespace JuCheap{ public class DependencyRegisterAttribute : Attribute { }}
2.修改注入代码
// Create the builder with which components/services are registered. var builder = new ContainerBuilder();// Resolve all the dependencies for the classes decorated with DependecyRegister builder.RegisterAssemblyTypes(AppDomain.CurrentDomain.GetAssemblies()) .Where(t => t.GetCustomAttribute<DependencyRegisterAttribute>() != null) .AsImplementedInterfaces() .InstancePerRequest();
3.在需要做依赖注入的代码上,加上DependencyRegisterAttribute
namespace JuCheap.Services{ [DependencyRegister] public class BookManager : IBookManager { }}
2 0
- AutoFac属性自动注入
- Asp.Net MVC 之 Autofac 初步使用2 集成mvc 属性注入以及自动注入
- Asp.Net MVC 之 Autofac 初步使用2 集成mvc 属性注入以及自动注入
- Autofac手动注入及自动注入示例
- Autofac手动注入及自动注入示例
- 依赖注入容器Autofac
- [Autofac]自动装配
- Autofac中文文档--一、注册组件--3属性和方法注入
- Autofac官方文档(五)【注册组件之属性和方法注入】
- Spring03---自动注入和属性注入
- IOC接口注入之Autofac
- autofac注入WCF IOC容器
- Autofac+Log4net依赖注入步骤
- AutoFac IoC DI 依赖注入
- 使用 Autofac 进行依赖注入
- MVC | 依赖注入 AutoFac (构造函数注入)
- 解决struts2自动注入属性的错误
- Spring依赖注入 — 属性自动装配
- django执行自定义sql语句
- MWPhotoBrowser性能优化
- 常用工具~teamviewer~请检查您的互联网连接 一般情况下您会使用代理
- PHPexcel
- svn把老库进行分库操作
- AutoFac属性自动注入
- matlab和c++混合编程---Mex结构和mexFunction参数传递
- Java中泛型概括总结
- Android 中利用反射访问private修饰的字段和方法
- Set集合下的奇葩,TreeSet有序而且类型相同
- Android美工坊--底部菜单栏实现
- spring boot 学习--08---搭建ssmm-03
- My Book
- 详解匿名内部类