Skip to content

Commit acbcdd6

Browse files
committed
WebApi 0.2.5.6 优化对静态类的依赖注入处理机制(绕过)
1 parent 854c84d commit acbcdd6

File tree

4 files changed

+27
-18
lines changed

4 files changed

+27
-18
lines changed

src/Senparc.CO2NET.WebApi/Senparc.CO2NET.WebApi.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
33
<TargetFrameworks>netcoreapp3.1;net5.0;net6.0</TargetFrameworks>
4-
<Version>0.2.5.1-preview3</Version>
4+
<Version>0.2.5.4-preview3</Version>
55
<LangVersion>latest</LangVersion>
66
<AssemblyName>Senparc.CO2NET.WebApi</AssemblyName>
77
<RootNamespace>Senparc.CO2NET.WebApi</RootNamespace>

src/Senparc.CO2NET.WebApi/WebApiEngines/WebApiEngine.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -396,7 +396,7 @@ private async Task BuildApiMethodForOneThread(IGrouping<string, KeyValuePair<str
396396

397397
//var dt1 = SystemTime.Now;
398398
//修改XML文档
399-
await BuildXmlDoc(category, methodName, apiMethodInfo, tb);
399+
//await BuildXmlDoc(category, methodName, apiMethodInfo, tb);
400400
//WriteLog($"methodName 文档修改耗时:{SystemTime.DiffTotalMS(dt1)}ms");
401401
}
402402
catch (Exception ex)

src/Senparc.CO2NET.WebApi/WebApiEngines/WebApiEngineExtensions.cs

Lines changed: 24 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using Microsoft.AspNetCore.Mvc;
22
using Microsoft.Extensions.DependencyInjection;
33
using Senparc.CO2NET.ApiBind;
4+
using Senparc.CO2NET.Trace;
45
using System;
56
using System.Collections.Concurrent;
67
using System.Collections.Generic;
@@ -110,25 +111,33 @@ private static void AddAndInitDynamicApi(this IServiceCollection services, (IMvc
110111
var threadIndex = i;
111112
var wrapperTask = Task.Factory.StartNew(async () =>
112113
{
113-
//此处使用 Task 效率并不比 Keys.ToList() 方法快
114-
webApiEngine.WriteLog($"Get API Groups: {threadIndex + 1}/{apiGouupsCount}, now dealing with: {category}");
115-
var dtStart = SystemTime.Now;
116-
var apiBindGroup = apiGroups.FirstOrDefault(z => z.Key == category);
117-
118-
var apiCount = await webApiEngine.BuildWebApi(apiBindGroup).ConfigureAwait(false);
119-
var apiAssembly = webApiEngine.GetApiAssembly(category);
120-
121-
//程序部件:https://docs.microsoft.com/zh-cn/aspnet/core/mvc/advanced/app-parts?view=aspnetcore-2.2
122-
if (builder.coreBuilder != null)
114+
try
123115
{
124-
builder.coreBuilder.AddApplicationPart(apiAssembly);
116+
117+
//此处使用 Task 效率并不比 Keys.ToList() 方法快
118+
webApiEngine.WriteLog($"Get API Groups: {threadIndex + 1}/{apiGouupsCount}, now dealing with: {category}");
119+
var dtStart = SystemTime.Now;
120+
var apiBindGroup = apiGroups.FirstOrDefault(z => z.Key == category);
121+
122+
var apiCount = await webApiEngine.BuildWebApi(apiBindGroup).ConfigureAwait(false);
123+
var apiAssembly = webApiEngine.GetApiAssembly(category);
124+
125+
//程序部件:https://docs.microsoft.com/zh-cn/aspnet/core/mvc/advanced/app-parts?view=aspnetcore-2.2
126+
if (builder.coreBuilder != null)
127+
{
128+
builder.coreBuilder.AddApplicationPart(apiAssembly);
129+
}
130+
else
131+
{
132+
builder.builder.AddApplicationPart(apiAssembly);
133+
}
134+
135+
assemblyBuildStat[category] = (apiCount: apiCount, costMs: SystemTime.DiffTotalMS(dtStart));
125136
}
126-
else
137+
catch (Exception ex)
127138
{
128-
builder.builder.AddApplicationPart(apiAssembly);
139+
SenparcTrace.BaseExceptionLog(ex);
129140
}
130-
131-
assemblyBuildStat[category] = (apiCount: apiCount, costMs: SystemTime.DiffTotalMS(dtStart));
132141
});
133142
taskList.Add(wrapperTask.Unwrap());
134143
}

src/Senparc.CO2NET/DI/SenparcServiceProviderFactory.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public IServiceContainer CreateBuilder(IServiceCollection services)
1616
public IServiceProvider CreateServiceProvider(IServiceContainer containerBuilder)
1717
{
1818
//SenparcDI.GlobalServiceProvider = containerBuilder;
19-
Console.WriteLine(containerBuilder.GetHashCode());
19+
//Console.WriteLine(containerBuilder.GetHashCode());
2020
return containerBuilder;
2121
}
2222
}

0 commit comments

Comments
 (0)