月色真美

月色真美

使用Autofac.Annotation组件像JavaSpring注解一样装配实现

18
2021-02-24

虽然.NetCore内置了DI容器,但是相信很多人还是习惯使用Autofac来替代内置容器。因为内置容器不支持属性注入、不支持自定义生存期管理、不支持基于名称的注入等。

那么针对Autofac,有一个很好用的第三方插件,Autofac.Annotation,可以通过特性,直接完成装配实现,非常的方便快捷。

开源地址:https://github.com/yuzd/Autofac.Annotation

1. 使用方式也很简单,这里推荐我喜欢用的一种dll注册方式

var autofacAnnoMe = new AutofacAnnotationModule(assemblyList.ToArray());
autofacAnnoMe.SetAllowCircularDependencies(true); //允许循环引用
builder.RegisterModule(autofacAnnoMe);

2. 实现类打上标签(可以使用Key标识不同对接口的实现)

[Component]
public class UserService : IUserService
{  
  //do somethings
}

3. 使用

[Autowired]
public IUserService _userService { get; set; }

4. 非常简单,非常实用。更多内容可以看作者github的wiki