using System; using System.Collections.Generic; using System.Text; namespace Serein.Library.Api { public interface ISereinIoc { /// /// 获取或创建类型的实例(不注入依赖项) /// object GetOrCreateServiceInstance(Type serviceType, params object[] parameters); T CreateServiceInstance(params object[] parameters); /// /// 清空 /// /// ISereinIoc Reset(); /// /// 以已存在的实例对象注册 /// /// /// ISereinIoc RegisterInstantiate(object instantiate); /// /// 注册实例 /// ISereinIoc Register(Type type, params object[] parameters); ISereinIoc Register(params object[] parameters); ISereinIoc Register(params object[] parameters) where TImplementation : TService; /// /// 获取或创建并注入目标类型 /// T GetOrInstantiate(); /// /// 获取或创建并注入目标类型 /// object GetOrInstantiate(Type type); /// /// 创建目标类型的对象, 并注入依赖项 /// 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); } }