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; /// /// 获取或创建并注入目标类型 /// T GetOrRegisterInstantiate(); /// /// 获取或创建并注入目标类型 /// object GetOrRegisterInstantiate(Type type); object Get(Type type); T Get(string name); object Get(string name); void CustomRegisterInstance(string name, object instance, bool needInjectProperty = true); ISereinIOC Run(string name, Action action); /// /// 创建目标类型的对象, 并注入依赖项 /// object Instantiate(Type type, params object[] parameters); 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); } }