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