using System;
using System.Collections.Generic;
using System.Text;
namespace Serein.Library.Api
{
///
/// 单例模式IOC容器,内部维护了一个实例字典,默认使用类型的FullName作为Key,
/// 如果以“接口-实现类”的方式注册,那么将使用接口类型的FullName作为Key。
/// 当某个类型注册绑定成功后,将不会因为其它地方尝试注册相同类型的行为导致类型被重新创建。
///
public interface ISereinIOC
{
///
/// 慎用,重置IOC容器,除非再次注册绑定,否则将导致不能创建注入依赖类的临时对象。
///
///
ISereinIOC Reset();
///
/// 通过指定类型的方式注册实例,该类型的实例由你提供
///
/// 实例类型
///
ISereinIOC Register(Type type);
///
/// 通过指定类型的方式注册实例,该类型将由IOC容器自动创建
///
/// 实例类型
/// 获取实例的回调函数
///
ISereinIOC Register(Type type, Func