@@ -57,6 +57,14 @@ public static IApplication Handler
5757 #endregion
5858
5959 #region Application API
60+ /// <summary>
61+ /// 终止CatLib框架
62+ /// </summary>
63+ public static void Terminate ( )
64+ {
65+ Handler . Terminate ( ) ;
66+ }
67+
6068 /// <summary>
6169 /// 注册服务提供者
6270 /// </summary>
@@ -359,7 +367,11 @@ public static bool HasBind(string service)
359367 /// <returns>是否已经静态化</returns>
360368 public static bool HasInstance < TService > ( )
361369 {
370+ #if CATLIB_PERFORMANCE
371+ return Facade < TService > . HasInstance || Handler . HasInstance < TService > ( ) ;
372+ #else
362373 return Handler . HasInstance < TService > ( ) ;
374+ #endif
363375 }
364376
365377 /// <summary>
@@ -654,9 +666,9 @@ public static string Type2Service(Type type)
654666 {
655667 return Handler . Type2Service ( type ) ;
656668 }
657- #endregion
669+ #endregion
658670
659- #region Container Extend API
671+ #region Container Extend API
660672 /// <summary>
661673 /// 获取服务的绑定数据,如果绑定不存在则返回null
662674 /// </summary>
@@ -1004,6 +1016,16 @@ public static void Unbind<TService>()
10041016 Handler . Unbind < TService > ( ) ;
10051017 }
10061018
1019+ /// <summary>
1020+ /// 为一个服务定义一个标记
1021+ /// </summary>
1022+ /// <typeparam name="TService">服务</typeparam>
1023+ /// <param name="tag">标记名</param>
1024+ public static void Tag < TService > ( string tag )
1025+ {
1026+ Handler . Tag < TService > ( tag ) ;
1027+ }
1028+
10071029 /// <summary>
10081030 /// 静态化一个服务,实例值会经过解决修饰器
10091031 /// </summary>
@@ -1023,6 +1045,16 @@ public static bool Release<TService>()
10231045 return Handler . Release < TService > ( ) ;
10241046 }
10251047
1048+ /// <summary>
1049+ /// 根据实例对象释放静态化实例
1050+ /// </summary>
1051+ /// <param name="instances">需要释放静态化实例对象</param>
1052+ /// <returns>只要有一个没有释放成功那么返回false</returns>
1053+ public static bool Release ( params object [ ] instances )
1054+ {
1055+ return Handler . Release ( instances ) ;
1056+ }
1057+
10261058 /// <summary>
10271059 /// 以依赖注入形式调用一个方法
10281060 /// </summary>
@@ -1123,7 +1155,11 @@ public static Action Wrap<T1, T2, T3, T4>(Action<T1, T2, T3, T4> method, params
11231155 /// <returns>服务实例</returns>
11241156 public static TService Make < TService > ( params object [ ] userParams )
11251157 {
1158+ #if CATLIB_PERFORMANCE
11261159 return Facade < TService > . Make ( userParams ) ;
1160+ #else
1161+ return Handler . Make < TService > ( userParams ) ;
1162+ #endif
11271163 }
11281164
11291165 /// <summary>
@@ -1147,6 +1183,26 @@ public static Func<TService> Factory<TService>(params object[] userParams)
11471183 return ( ) => Make < TService > ( userParams ) ;
11481184 }
11491185
1186+ /// <summary>
1187+ /// 当静态服务被释放时
1188+ /// </summary>
1189+ /// <param name="callback">处理释放时的回调</param>
1190+ /// <returns>当前容器实例</returns>
1191+ public static IContainer OnRelease ( Action < object > callback )
1192+ {
1193+ return Handler . OnRelease ( callback ) ;
1194+ }
1195+
1196+ /// <summary>
1197+ /// 当服务被解决时,生成的服务会经过注册的回调函数
1198+ /// </summary>
1199+ /// <param name="callback">回调函数</param>
1200+ /// <returns>当前容器对象</returns>
1201+ public static IContainer OnResolving ( Action < object > callback )
1202+ {
1203+ return Handler . OnResolving ( callback ) ;
1204+ }
1205+
11501206 /// <summary>
11511207 /// 关注指定的服务,当服务触发重定义时调用指定对象的指定方法
11521208 /// <param>调用是以依赖注入的形式进行的</param>
@@ -1213,6 +1269,6 @@ public static string Type2Service<TService>()
12131269 {
12141270 return Handler . Type2Service < TService > ( ) ;
12151271 }
1216- #endregion
1272+ #endregion
12171273 }
12181274}
0 commit comments