c# - 如何从 WebApiConfig 迁移到 Startup 类(.net core)
问题描述
我正在尝试将一个大项目从ASP.Net Framework迁移到ASP.NetCore。这是我第一次这样做。
我一直在为自己研究,我或多或少地看到了这些步骤。Microsoft Doc,分步指南。
我发现的第一个麻烦是从Global.asax
, WebApiConfig
... 迁移到Startup.cs
.
这是我的WebApiConfig:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
if (config != null)
{
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
"DefaultApi",
"api/{controller}/{id}",
new {id = RouteParameter.Optional}
);
config.DependencyResolver = new AutofacWebApiDependencyResolver(ServiceBootStrapper.BootStrapper.Container);
var logger = (ILog)config.DependencyResolver.GetService(typeof(ILog));
config.Services.Add(typeof(IExceptionLogger), new GlobalExceptionLogger(logger));
}
config.InitializeCustomWebHooks();
config.InitializeCustomWebHooksSqlStorage();
config.InitializeCustomWebHooksApis();
}
}
我知道当您迁移到 .net 核心时,您可以使用
public void ConfigureServices(IServiceCollection services)
添加依赖注入和服务。也可以public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
用于中间件、自定义中间件...等
所以,我创业的第一个方法:
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc(options => options.EnableEndpointRouting = false);
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseStaticFiles();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
}
但我不知道如何继续。我有几个问题
我能做什么?
config.InitializeCustomWebHooksSqlStorage()
config.InitializeCustomsWebHooks()
config.InitializeCustomWebHooksApis()
我要添加自定义中间件吗?
怎么样config.DepencencyResolver
?我可以使用 nativeDepency Inyection
还是必须使用Autofac
?
我真的迷失了。
解决方案
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
您可以在configure方法中添加所有配置
推荐阅读
- c# - 创建具有二维数组的表矩阵 C#
- javascript - 是否可以在 d3 中选择特定的 X 比例?
- python - 如何从 for 循环动态创建不同的数据帧以存储数据
- css - 如何使可切换的 mat-sidenav 推送也成为 mat-sidenav-content 中的固定标题
- r - 从 R 中的 twitter 源获取子字符串
- android - 构建后对本机编辑文件做出反应
- sql - SQLite & INNER JOIN 查询
- c - (C) 当我不想用数据结构改变字符串时
- scala - 我有带有空值的示例数据框,我希望将空值转移到右侧的列值
- c - 带有指针和结构的内存分配 C