using System; using System.Collections.Generic; using System.Text; namespace Serein.Library.Api { public interface ISereinIOC { /// /// 清空 /// /// ISereinIOC Reset(); /// /// 注册实例 /// ISereinIOC Register(Type type, params object[] parameters); /// /// 注册实例 /// /// /// /// ISereinIOC Register(params object[] parameters); /// /// 注册接口的实例 /// /// /// /// /// ISereinIOC Register(params object[] parameters) where TImplementation : TService; ///// ///// 获取或创建并注入目标类型,会记录到IOC容器中。 ///// //T GetOrRegisterInstantiate(); ///// ///// 获取或创建并注入目标类型,会记录到IOC容器中。 ///// //object GetOrRegisterInstantiate(Type type); /// /// 获取类型的实例 /// /// /// object Get(Type type); T Get(); /// /// 获取指定名称的实例 /// /// /// /// T Get(string key); /// /// 通过名称注册实例 /// /// 注入名称 /// 实例对象 /// 是否需要注入依赖项 void CustomRegisterInstance(string key, object instance, bool needInjectProperty = true); /// /// 用于临时实例的创建,不注册到IOC容器中,依赖项注入失败时也不记录。 /// object Instantiate(Type type); /// /// 用于临时实例的创建,不注册到IOC容器中,依赖项注入失败时也不记录。 /// T Instantiate(); /// /// 实例化注册的类型,并注入依赖项 /// /// ISereinIOC Build(); ISereinIOC Run(Action action); ISereinIOC Run(Action action); ISereinIOC Run(Action action); ISereinIOC Run(Action action); ISereinIOC Run(Action action); ISereinIOC Run(Action action); ISereinIOC Run(Action action); ISereinIOC Run(Action action); } }