# EkIocContainer-IOC **Repository Path**: IceInk/EkIocContainer-IOC ## Basic Information - **Project Name**: EkIocContainer-IOC - **Description**: 一个IOC容器, - **Primary Language**: C# - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2020-07-24 - **Last Updated**: 2023-08-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # EkIocContainer-IOC- 一个IOC容器, # 《依赖注入》: 在构建A对象的时候,需要依赖B对象,那么久先构造B对象并传入; 也就是在构造对象的时候,把对象的依赖初始化并传入进去,就是依赖注入。 IOC 可以说是一种设计模式,DI是IOC的一种实现方式 # 功能描述: 支持无限层级的依赖注入,单接口多实现 ## 一:构造函数注入 1、支持构造函数多参数注入 2、支持选择指定构造函数注入,指定的构造函数用特性 EkIocInjectCtorAttribute 标记 3、支持构造函数常量参数注入,列如:参数类型是string int float 等类型, 常量参数用特性 EkIocInjectParameterAttribute 标记 ## 二:属性注入 1、支持选择指定的属性注入,需要注入的属性用特性 EkIocInjectPropAttribute 标记 ## 三:方法注入 1、支持选择指定的方法注入,需要注入的方法用特性 EkIocInjectMethodAttribute 标记 ## 四:生命周期 1、瞬时 每次需要对象的时候都重新创建一个 2、单例 全局使用同一个实例对象 3、作用域单例 一次请求一个单例 每次来一个请求,就clone一个,或者叫创建子容器(包含注册关系),然后一个请求就一个子容器实例, 那么久可以做到请求单例,也就是子容器单例, ### TODO 4、线程单例 相同线程中使用同一个单例