ASP.NET Core 面试题(一)

2021-06-25 15:10:45 浏览数 (1)

版权提示:本文首发于 InfoQ,首发地址,后续发于本人的 CSDN 博客、微信公众号,未经本人授权请勿转载

1、如何激活 ASP.NET Core 的 Session 功能?

首先添加 Session 包,其次在 ConfigService 方法中添加 Session,最后在 Configure 方法里调用 UseSession。

2、何为中间件

在 ASP.NET Core 中中间件指的是注入到应用中用来处理请求和相应的组件,是通过多个委托嵌套形成的。

3、Applicationbuilder 的 Use 和 Run 方法有什么异同?

首先这两个方法都是在 startup 类的 configure 方法里面调用的,并且都是用来向应用请求管道里面添加中间件的。但是 Use 方法可以调用下一个中间件,Run 方法则不能,它是终结式的。

4、如何使 taghelper 在元素层级上失效?

使用叹号即可。

5、ASP.NET Core 是什么?

ASP.NET Core 可以说是 ASP.NET 的升级版本,它遵循 .NET 标准框架,是基于 .NET Core 的 Web 开发框架,可运行于多种操作系统,相比 ASP.NET 来说更快、更易于配置、更加模块化,并且扩展性更加强。

6、ASP.NET Core 中 AOP 是通过什么来支持的?分别有哪些?

AOP 是通过 Filter 来支持的,分别有 IResourceFile、AuthorizeFilter、ActionFilter、ExceptionFilter、ResultFilter。

7、ASP.NET Core Filter 注册方式有哪几种?它们的有效范围

有三种,分别是: 方法注册:只对方法生效; 控制器注册:只对控制器中的方法生效; 全局注册:对整个项目生效;

8、ASP.NET Core Filter 如何支持依赖注入?
  • 通过全局注册的方式支持依赖注入:
代码语言:javascript复制
public void ConfigureServices(IServiceCollection services)
{
    services.AddSingleton<TestActionFilterAttribute>();
    services.AddControllersWithViews(options =>
    {
        options.Filters.Add<TestActionFilterAttribute>();
    });
}
  • 通过 TypeFilter(typeof(Filter)) 注入( 标记在方法、控制器):
代码语言:javascript复制
[TypeFilter(typeof(Filter))]
public IActionResult Index()
{
    return View();
}
  • 通过 ServiceType(typof(Filter)) 注入( 标记在方法、控制器,必须要注册Filter这个类):
代码语言:javascript复制
[ServiceFilter(typeof(Filter))]
public IActionResult Index()
{
    return View();
}

public void ConfigureServices(IServiceCollection services)
{
    services.AddSingleton<TestActionFilterAttribute>();
    services.AddControllersWithViews();
}
9、ASP.NET Core 读取配置文件内容的方法?

读取配置文件的方法有两种,一种是通过 IConfiguration 接口读取,一种是根据配置文件结构定义出结构一致的实体对象去绑定。

10、请列举出你所知道的 ASP.NET Core 的优秀功能。
  • 依赖注入;
  • 日志系统架构;
  • 具有跨平台网络服务器 kestrel ,可以在没有 IIS、Apache和Nginx 的情况下单独运行;
  • 可以使用命令行来创建应用;
  • 使用 json(appsettings) 配置工程;
  • 使用 startup 注册服务;
  • 提升了对异步编程的支持性;
  • 完全支持 web socket 和 signalR;
  • 具有对跨站请求的预防和保护机制。

0 人点赞