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