一步一步造个Ioc轮子目录一步一步造个IoC轮子(一):Ioc是什么一步一步造个IoC轮子(二):详解泛型工厂一步一步造个IoC轮子(三):构造基本的IoC容器定义容器首先,我们来画个大饼,定义好构造函数,注册函数及获取函数这几个最基本的使用方法 /// <summary ...
一步一步造个Ioc轮子目录
一步一步造个IoC轮子(一):Ioc是什么一步一步造个IoC轮子(二):详解泛型工厂
一步一步造个IoC轮子(三):构造基本的IoC容器
定义容器
首先,我们来画个大饼,定义好构造函数,注册函数及获取函数这几个最基本的使用方法
/// <summary> /// IoC容器 /// </summary> public class Container { /// <summary> /// 构造函数 /// </summary> /// <param name="cfg">配置文件,默认为启动目录下"cfg.</param> public Container(get='_blank'>string cfg = "cfg.") { } /// <summary> /// 注册 /// </summary> /// <typeparam name="F">接口或父类</typeparam> /// <typeparam name="S">继承类</typeparam> /// <param name="name">索引名称,默认为空</param> public void Register<F, S>(string name = null) where S : F, new() where F : class { } /// <summary> /// 注册单例 /// </summary> /// <typeparam name="F">接口或父类</typeparam> /// <typeparam name="S">继承类</typeparam> /// <param name="name"></param> /// <param name="name">索引名称,默认为空</param> public void RegisterSingleton<F, S>(string name = null) where S : F, new() where F : class { } /// <summary> /// 注册,对象由传入的Func委托创建 /// </summary> /// <typeparam name="T">接口或父类</typeparam> /// <param name="func">对象创建委托</param> /// <param name="name">索引名称,默认为空</param> public void Register<T>(Func<T> func, string name = null) where T : class { } /// <summary> /// 注册单例,对象由传入的Func委托创建 /// </summary> /// <typeparam name="T">接口或父类</typeparam> /// <param name="func">对象创建委托</param> /// <param name="name">索引名称,默认为空</param> public void RegisterSingleton<T>(Func<T> func, string name = null) where T : class { } /// <summary> /// 获取 /// </summary> /// <typeparam name="T">接口或父类</typeparam> /// <returns>注册的继承类</returns> public T Resolve<T>() where T : class { throw new NotImplementedException(); } /// <summary> /// 获取 /// </summary> /// <typeparam name="T">接口或父类</typeparam> /// <param name="name">索引名称</param> /// <returns>注册的继承类</returns> public T Resolve<T>(string name) where T : class { throw new NotImplementedException(); } /// <summary> /// 取出当前所有注册的列表 /// </summary> /// <typeparam name="T">接口或父类</typeparam> /// <returns>索引名称列表,null表示无索引注册</returns> public IList<string> GetRegisterList<T>() where T : class { throw new NotImplementedException(); } }
原标题:一步一步造个IoC轮子(三):构造基本的IoC容器
关键词:
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。