Skip to content

Commit 7b2d34c

Browse files
committed
this IHostBuilder + RunConosoleAppFrameworkHostingAsync
1 parent 7e0b0e1 commit 7b2d34c

File tree

4 files changed

+38
-34
lines changed

4 files changed

+38
-34
lines changed

sandbox/WebHostingApp/Program.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,16 @@
44
using ConsoleAppFramework;
55
using System;
66
using System.Threading.Tasks;
7+
using Microsoft.Extensions.Hosting;
78

89
namespace WebHostingApp
910
{
1011
public class Program
1112
{
1213
public static async Task Main(string[] args)
1314
{
14-
await new WebHostBuilder().RunConsoleAppEngineWebHosting("http://localhost:12345");
15+
await Host.CreateDefaultBuilder(args)
16+
.RunConsoleAppFrameworkWebHostingAsync("http://localhost:12345");
1517
}
1618
}
1719

@@ -62,7 +64,7 @@ public void StringArray(string[] simpleArray)
6264
}
6365
public void OjectArray(Person[] objectArray)
6466
{
65-
Context.Logger.LogInformation(string.Join(", ", objectArray.Select(x =>(x==null) ? "nul" : x.Age + ":" + x.Name)));
67+
Context.Logger.LogInformation(string.Join(", ", objectArray.Select(x => (x == null) ? "nul" : x.Age + ":" + x.Name)));
6668
}
6769

6870
public void DefaultV(int x = 100, int y = 200, string foo = null)

src/ConsoleAppFramework.WebHosting/ConsoleAppEngineHostingExtensions.cs renamed to src/ConsoleAppFramework.WebHosting/ConsoleAppFrameworkHostingExtensions.cs

Lines changed: 29 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@
1313

1414
namespace ConsoleAppFramework // .WebHosting
1515
{
16-
public static class ConsoleAppEngineHostingExtensions
16+
public static class ConsoleAppFrameworkHostingExtensions
1717
{
18-
public static IWebHostBuilder PrepareConsoleAppEngineMiddleware(this IWebHostBuilder builder, IConsoleAppInterceptor? interceptor = null)
18+
public static IWebHostBuilder PrepareConsoleAppFrameworkMiddleware(this IWebHostBuilder builder, IConsoleAppInterceptor? interceptor = null)
1919
{
2020
var consoleAppTypes = CollectConsoleAppTypes();
2121
var target = new TargetConsoleAppTypeCollection(consoleAppTypes);
@@ -32,37 +32,39 @@ public static IWebHostBuilder PrepareConsoleAppEngineMiddleware(this IWebHostBui
3232
});
3333
}
3434

35-
public static Task RunConsoleAppEngineWebHosting(this IWebHostBuilder builder, string urls, SwaggerOptions? swaggerOptions = null, IConsoleAppInterceptor? interceptor = null)
35+
public static async Task RunConsoleAppFrameworkWebHostingAsync(this IHostBuilder builder, string urls, SwaggerOptions? swaggerOptions = null, IConsoleAppInterceptor? interceptor = null)
3636
{
37-
return builder
38-
.PrepareConsoleAppEngineMiddleware(interceptor)
39-
.ConfigureServices(services =>
40-
{
41-
if (swaggerOptions == null)
37+
var host = builder.ConfigureWebHost(webHost =>
38+
{
39+
webHost.PrepareConsoleAppFrameworkMiddleware(interceptor)
40+
.ConfigureServices(services =>
4241
{
43-
// GetEntryAssembly() never returns null when called from managed code.
44-
var entryAsm = Assembly.GetEntryAssembly()!;
45-
var xmlName = entryAsm.GetName().Name + ".xml";
46-
var xmlPath = Path.Combine(Path.GetDirectoryName(entryAsm.Location) ?? "", xmlName);
47-
swaggerOptions = new SwaggerOptions(entryAsm.GetName().Name!, "", "/") { XmlDocumentPath = xmlPath };
48-
}
49-
services.AddSingleton<SwaggerOptions>(swaggerOptions);
50-
})
51-
.UseKestrel()
52-
.UseUrls(urls)
53-
.UseStartup<DefaultStartup>()
54-
.Build()
55-
.RunAsync();
42+
if (swaggerOptions == null)
43+
{
44+
// GetEntryAssembly() never returns null when called from managed code.
45+
var entryAsm = Assembly.GetEntryAssembly()!;
46+
var xmlName = entryAsm.GetName().Name + ".xml";
47+
var xmlPath = Path.Combine(Path.GetDirectoryName(entryAsm.Location) ?? "", xmlName);
48+
swaggerOptions = new SwaggerOptions(entryAsm.GetName().Name!, "", "/") { XmlDocumentPath = xmlPath };
49+
}
50+
services.AddSingleton<SwaggerOptions>(swaggerOptions);
51+
})
52+
.UseKestrel()
53+
.UseUrls(urls)
54+
.UseStartup<DefaultStartup>();
55+
});
56+
57+
await host.Build().RunAsync();
5658
}
5759

58-
public static IApplicationBuilder UseConsoleAppEngineMiddleware(this IApplicationBuilder builder)
60+
public static IApplicationBuilder UseConsoleAppFrameworkMiddleware(this IApplicationBuilder builder)
5961
{
60-
return builder.UseMiddleware<ConsoleAppEngineMiddleware>();
62+
return builder.UseMiddleware<ConsoleAppFrameworkMiddleware>();
6163
}
6264

63-
public static IApplicationBuilder UseConsoleAppEngineSwaggerMiddleware(this IApplicationBuilder builder, SwaggerOptions options)
65+
public static IApplicationBuilder UseConsoleAppFrameworkSwaggerMiddleware(this IApplicationBuilder builder, SwaggerOptions options)
6466
{
65-
return builder.UseMiddleware<ConsoleAppEngineSwaggerMiddleware>(options);
67+
return builder.UseMiddleware<ConsoleAppFrameworkSwaggerMiddleware>(options);
6668
}
6769

6870
public class DefaultStartup
@@ -92,8 +94,8 @@ public void Configure(IApplicationBuilder app, IHostApplicationLifetime lifetime
9294
});
9395

9496
var swaggerOption = app.ApplicationServices.GetService<SwaggerOptions>() ?? new SwaggerOptions("ConsoleAppFramework", "", "/");
95-
app.UseConsoleAppEngineSwaggerMiddleware(swaggerOption);
96-
app.UseConsoleAppEngineMiddleware();
97+
app.UseConsoleAppFrameworkSwaggerMiddleware(swaggerOption);
98+
app.UseConsoleAppFrameworkMiddleware();
9799
}
98100
}
99101

src/ConsoleAppFramework.WebHosting/ConsoleAppEngineMiddleware.cs renamed to src/ConsoleAppFramework.WebHosting/ConsoleAppFrameworkMiddleware.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ public override string ToString()
8787
}
8888
}
8989

90-
public class ConsoleAppEngineMiddleware
90+
public class ConsoleAppFrameworkMiddleware
9191
{
9292
readonly RequestDelegate next;
9393
readonly IServiceProvider provider;
@@ -96,7 +96,7 @@ public class ConsoleAppEngineMiddleware
9696

9797
readonly Dictionary<string, MethodInfo> methodLookup;
9898

99-
public ConsoleAppEngineMiddleware(RequestDelegate next, ILogger<ConsoleAppEngine> logger, IConsoleAppInterceptor interceptor, IServiceProvider provider, TargetConsoleAppTypeCollection targetTypes)
99+
public ConsoleAppFrameworkMiddleware(RequestDelegate next, ILogger<ConsoleAppEngine> logger, IConsoleAppInterceptor interceptor, IServiceProvider provider, TargetConsoleAppTypeCollection targetTypes)
100100
{
101101
this.next = next;
102102
this.logger = logger;

src/ConsoleAppFramework.WebHosting/ConsoleAppEngineSwaggerMiddleware.cs renamed to src/ConsoleAppFramework.WebHosting/ConsoleAppFrameworkSwaggerMiddleware.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@
77

88
namespace ConsoleAppFramework.WebHosting
99
{
10-
public class ConsoleAppEngineSwaggerMiddleware
10+
public class ConsoleAppFrameworkSwaggerMiddleware
1111
{
1212
static readonly Task EmptyTask = Task.FromResult(0);
1313

1414
readonly RequestDelegate next;
1515
readonly MethodInfo[] handlers;
1616
readonly SwaggerOptions options;
1717

18-
public ConsoleAppEngineSwaggerMiddleware(RequestDelegate next, TargetConsoleAppTypeCollection targetTypes, SwaggerOptions options)
18+
public ConsoleAppFrameworkSwaggerMiddleware(RequestDelegate next, TargetConsoleAppTypeCollection targetTypes, SwaggerOptions options)
1919
{
2020
this.next = next;
2121
this.handlers = targetTypes.SelectMany(x => x.GetMethods(BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly)).ToArray();
@@ -42,7 +42,7 @@ public async Task Invoke(HttpContext httpContext)
4242
return;
4343
}
4444

45-
var myAssembly = typeof(ConsoleAppEngineSwaggerMiddleware).GetTypeInfo().Assembly;
45+
var myAssembly = typeof(ConsoleAppFrameworkSwaggerMiddleware).GetTypeInfo().Assembly;
4646

4747
using (var stream = myAssembly.GetManifestResourceStream(filePath))
4848
{

0 commit comments

Comments
 (0)