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 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); } }