## 简介
熟悉Asp.NetCore的小伙伴们，对依赖注入可太熟悉，这里也不在过多的讲述依赖注入知识
默认内置的注入方式，通常是在启动类文件，一个一个手动注入，例如：
``` cs
service.Addsingle<接口,类>()
```
同样，当服务过多，添加服务的代码会显的非常长，不够优雅
可以使用框架内置的接口
- IScopedDependency
- ISingletonDependency
- ITransientDependency

也可以使用框架内置的特性
- DependencyAttribute
- ExposeServicesAttribute

> 使用特性，可以指定特定类、接口作为抽象
## 如何使用
#### 特性方式：
在实现类上标注特性即可
``` cs
[ExposeServices(typeof(ITestService))]
[Dependency(ServiceLifetime.Transient)]
public class Test
{
}
```

#### 接口方式：
同理，根据不同的接口，选择不同的生命周期，自动会优先找自动以`I+类名`的接口作为抽象
``` cs
public class Test:ITest,ISingletonDependency
{
}
```