Skip to content

Commit a5c41bb

Browse files
committed
sync to app
1 parent 8b28318 commit a5c41bb

File tree

1 file changed

+104
-0
lines changed

1 file changed

+104
-0
lines changed

src/CatLib.Core/CatLib/App.cs

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -591,6 +591,28 @@ public static Func<object> Factory(string service)
591591
return Handler.Factory(service);
592592
}
593593

594+
/// <summary>
595+
/// 扩展容器中的服务
596+
/// <para>允许在服务构建的过程中配置或者替换服务</para>
597+
/// <para>如果服务已经被构建,拓展会立即生效。</para>
598+
/// </summary>
599+
/// <param name="closure">闭包</param>
600+
public static void Extend(Func<object, IContainer, object> closure)
601+
{
602+
Handler.Extend(closure);
603+
}
604+
605+
/// <summary>
606+
/// 扩展容器中的服务
607+
/// <para>允许在服务构建的过程中配置或者替换服务</para>
608+
/// <para>如果服务已经被构建,拓展会立即生效。</para>
609+
/// </summary>
610+
/// <param name="closure">闭包</param>
611+
public static void Extend(Func<object, object> closure)
612+
{
613+
Handler.Extend(closure);
614+
}
615+
594616
/// <summary>
595617
/// 扩展容器中的服务
596618
/// <para>允许在服务构建的过程中配置或者替换服务</para>
@@ -1241,6 +1263,26 @@ public static IContainer OnRelease(Action<object> callback)
12411263
return Handler.OnRelease(callback);
12421264
}
12431265

1266+
/// <summary>
1267+
/// 当静态服务被释放时
1268+
/// </summary>
1269+
/// <param name="closure">处理释放时的回调</param>
1270+
/// <returns>当前容器实例</returns>
1271+
public static IContainer OnRelease<TWhere>(Action<TWhere> closure)
1272+
{
1273+
return Handler.OnRelease(closure);
1274+
}
1275+
1276+
/// <summary>
1277+
/// 当静态服务被释放时
1278+
/// </summary>
1279+
/// <param name="closure">处理释放时的回调</param>
1280+
/// <returns>当前容器实例</returns>
1281+
public static IContainer OnRelease<TWhere>(Action<IBindData, TWhere> closure)
1282+
{
1283+
return Handler.OnRelease(closure);
1284+
}
1285+
12441286
/// <summary>
12451287
/// 当服务被解决时,生成的服务会经过注册的回调函数
12461288
/// </summary>
@@ -1251,6 +1293,68 @@ public static IContainer OnResolving(Action<object> callback)
12511293
return Handler.OnResolving(callback);
12521294
}
12531295

1296+
/// <summary>
1297+
/// 当服务被解决时,生成的服务会经过注册的回调函数
1298+
/// </summary>
1299+
/// <param name="closure">回调函数</param>
1300+
/// <returns>当前容器对象</returns>
1301+
public static IContainer OnResolving<TWhere>(Action<TWhere> closure)
1302+
{
1303+
return Handler.OnResolving(closure);
1304+
}
1305+
1306+
/// <summary>
1307+
/// 当服务被解决时,生成的服务会经过注册的回调函数
1308+
/// </summary>
1309+
/// <param name="closure">回调函数</param>
1310+
/// <returns>当前容器对象</returns>
1311+
public static IContainer OnResolving<TWhere>(Action<IBindData, TWhere> closure)
1312+
{
1313+
return Handler.OnResolving(closure);
1314+
}
1315+
1316+
/// <summary>
1317+
/// 当服务被解决事件之后的回调
1318+
/// </summary>
1319+
/// <param name="closure">闭包</param>
1320+
/// <returns>当前容器</returns>
1321+
public static IContainer OnAfterResolving(Action<IBindData, object> closure)
1322+
{
1323+
return Handler.OnAfterResolving(closure);
1324+
}
1325+
1326+
/// <summary>
1327+
/// 当服务被解决事件之后的回调
1328+
/// </summary>
1329+
/// <param name="closure">闭包</param>
1330+
/// <returns>当前容器</returns>
1331+
public static IContainer OnAfterResolving(Action<object> closure)
1332+
{
1333+
return Handler.OnAfterResolving(closure);
1334+
}
1335+
1336+
/// <summary>
1337+
/// 当服务被解决事件之后的回调
1338+
/// </summary>
1339+
/// <typeparam name="TWhere">筛选条件</typeparam>
1340+
/// <param name="closure">闭包</param>
1341+
/// <returns>当前容器</returns>
1342+
public static IContainer OnAfterResolving<TWhere>(Action<TWhere> closure)
1343+
{
1344+
return Handler.OnAfterResolving(closure);
1345+
}
1346+
1347+
/// <summary>
1348+
/// 当服务被解决事件之后的回调
1349+
/// </summary>
1350+
/// <typeparam name="TWhere">筛选条件</typeparam>
1351+
/// <param name="closure">闭包</param>
1352+
/// <returns>当前容器</returns>
1353+
public static IContainer OnAfterResolving<TWhere>(Action<IBindData, TWhere> closure)
1354+
{
1355+
return Handler.OnAfterResolving(closure);
1356+
}
1357+
12541358
/// <summary>
12551359
/// 关注指定的服务,当服务触发重定义时调用指定对象的指定方法
12561360
/// <param>调用是以依赖注入的形式进行的</param>

0 commit comments

Comments
 (0)