希望使用.Net核心创建一套微服务,我正在考虑为Startup类创建一个基类,该基类负责配置常用功能,例如日志记录,身份验证,端点运行状况检查,从而使我们的所有服务标准化。
但是令我惊讶的是,似乎没有提到这种模式。是将定制中间件用于常见功能的首选模式吗?任何与这个困境有关的想法或经验将不胜感激。
最佳答案
在IServiceCollection
命名空间中为IApplicationBuilder
和/或Microsoft.Extensions.DependencyInjection
接口(interface)创建扩展方法:
public static IServiceCollection AddAllCoolStuff(this IServiceCollection services)
{
if (services == null)
{
throw new ArgumentNullException(nameof(services));
}
services.AddSingleton<FooService>();
services.AddTransient<IBooService, BooService>();
...
return services;
}
public static IApplicationBuilder UseAllCoolStuff(this IApplicationBuilder app)
{
if (app == null)
{
throw new ArgumentNullException(nameof(app));
}
app.UseMiddleware<SomeCoolMiddleware>();
...
return app;
}
并在您的启动公司中使用它们:
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddAllCoolStuff();
}
public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory)
{
app.UseAllCoolStuff();
}
}
关于c# - .Net核心启动基础类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44755011/