Skip to content

Commit 122ccf4

Browse files
committed
resolved #124
1 parent cbc30c2 commit 122ccf4

File tree

1 file changed

+18
-7
lines changed

1 file changed

+18
-7
lines changed

src/CatLib.Core/Support/Container/Container.cs

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1997,7 +1997,7 @@ private object Build(BindData makeServiceBindData, object[] userParams)
19971997
/// <param name="makeServiceType">服务类型</param>
19981998
/// <param name="userParams">用户传入的构造参数</param>
19991999
/// <returns>服务实例</returns>
2000-
private object CreateInstance(Bindable makeServiceBindData, Type makeServiceType, object[] userParams)
2000+
protected virtual object CreateInstance(Bindable makeServiceBindData, Type makeServiceType, object[] userParams)
20012001
{
20022002
if (IsUnableType(makeServiceType))
20032003
{
@@ -2008,19 +2008,30 @@ private object CreateInstance(Bindable makeServiceBindData, Type makeServiceType
20082008

20092009
try
20102010
{
2011-
// 如果参数不存在那么在反射时不写入参数可以获得更好的性能
2012-
if (userParams == null || userParams.Length <= 0)
2013-
{
2014-
return Activator.CreateInstance(makeServiceType);
2015-
}
2016-
return Activator.CreateInstance(makeServiceType, userParams);
2011+
return CreateInstance(makeServiceType, userParams);
20172012
}
20182013
catch (Exception ex)
20192014
{
20202015
throw MakeBuildFaildException(makeServiceBindData.Service, makeServiceType, ex);
20212016
}
20222017
}
20232018

2019+
/// <summary>
2020+
/// 通过指定的类型构建服务实现
2021+
/// </summary>
2022+
/// <param name="makeServiceType">指定的服务类型</param>
2023+
/// <param name="userParams">用户自定义参数</param>
2024+
/// <returns>构建的服务实现</returns>
2025+
protected virtual object CreateInstance(Type makeServiceType, object[] userParams)
2026+
{
2027+
// 如果参数不存在那么在反射时不写入参数可以获得更好的性能
2028+
if (userParams == null || userParams.Length <= 0)
2029+
{
2030+
return Activator.CreateInstance(makeServiceType);
2031+
}
2032+
return Activator.CreateInstance(makeServiceType, userParams);
2033+
}
2034+
20242035
/// <summary>
20252036
/// 获取服务绑定数据,如果数据为null则填充数据
20262037
/// </summary>

0 commit comments

Comments
 (0)