zoukankan      html  css  js  c++  java
  • ASP net core面试题汇总及答案

    在dot net core中,我们不需要关心如何释放这些服务, 因为系统会帮我们释放掉。有三种服务的生命周期。

      单实例服务, 通过add singleton方法来添加。在注册时即创建服务, 在随后的请求中都使用这一个服务。

      短暂服务, 通过add transient方法来添加。是一种轻量级的服务,用于无状态服务的操作。

      作用域服务,一个新的请求会创建一个服务实例。使用add scoped方法来添加。

           今天 陕西优就业小编给大家分享一篇相关面试题,希望对大家有用。

            

           第1题:什么是ASP net core?

      首先ASP net core不是 asp net的升级版本。它遵循了dot net的标准架构, 可以运行于多个操作系统上。它更快,更容易配置,更加模块化,可扩展性更强。

      第2题:asp dot core有哪些好的功能?

      第一是依赖注入。

      第二是日志系统架构。

      第三是引入了一个跨平台的网络服务器,kestrel。可以没有iis, apache和nginx就可以单独运行。

      第四是可以使用命令行创建应用。

      第五是使用APP settings json file来配置工程。

      第六是使用start up来注册服务。

      第七是更好的支持异步编程。

      第八是支持web socket和signal IR。

      第九是对于跨网站的请求的预防和保护机制。

      第3题:dot net core跟dot net比较有哪些更好的地方?

      第一是跨平台,它可以运行在三大操作系统上面,windows, Linux和MAC。

      第二是对架构本身安装没有依赖,因为所有的依赖都跟程序本身在一起。

      第三是dot net core处理请求的效率更高,能够处理更多的请求。

      第四是dot net core有更多的安装配置方法。

      第4题:什么是meta packages?

      Meta packages是指包含所有ASP dot net code依赖的一个包。叫做Microsoft.AspNetCore

      第5题:don net core应用能够跟dot net 4.x架构一起工作吗?

      可以。Dot net core应用可以跟标准的dot net 库一起工作。

      第6题:什么是dot net core的startup class?

      Startup class是dot net core应用的入口。所有的dot net core应用必须有这个class 这个类用来配置应用。

      这个类的调用是在program main函数里面进行配置的。类的名字可以自己定义。

      第7题:Startup class的config service方法有什么作用?

      在这个方法里我们可以添加一些service进入依赖注入容器。

      第8题:startup class的configure方法有什么作用?

      这个方法来定义整个应用如何响应HTTP请求。它有几个比较重要的参数,application builder,Hosting environment, logo factory,在这里我们可以配置一些中间件用来处理路径,验证和session等等。

      第9题:什么是中间件?

      中间件在这里是指注入到应用中处理请求和响应的组件。

      第10题:application builder的use和run方法有什么区别?

      这两个方法都在start up class的configure方法里面调用。都是用来向应用请求管道里面添加中间件的。Use方法可以调用下一个中间件的添加,而run不会。

      第11题:dot net core 管道里面的map拓展有什么作用?

      可以针对不同的路径添加不同的中间件。

      第12题:dot net core里面的路径是如何处理的?

      路径处理是用来为进入的请求寻找处理函数的机制。所有的路径在函数运行开始时进行注册。

      主要有两种路径处理方式,常规路径处理和属性路径处理。常规路径处理就是用MapRoute的方式设定调用路径,属性路径处理是指在调用函数的上方设定一个路径属性。

      第13题:如何在dot net core中激活session功能?

      首先要添加session包. 其次要在config service方法里面添加session。然后又在configure方法里面调用usesession。

      第14题:dot net core工程里面有多少个工程文件?

      global, launch setting,app settings,bundle config,bower, package。

      第15题:什么是dot net core里面的tag helper?

      Tag helper用来在服务器端使用Razor视图引擎创建html元素的。

      第16题:如何使tag helper在元素这一层上失效?

      使用叹号。

      第17题:什么是Razor页面?

      是dot net core中支持ASP网页表格的一种开发模型。@page 作为页面的起始标志。

      第18题:如何在Razor页面中实现数据模型绑定?

      使用bindproperty属性。

      第19题:如何在controller中注入service?

      在config services方法中配置这个service。

      在controller的构造函数中,添加这个依赖注入。

    ---------------------------------------------------------------------------------------------------

      第20题:描述一下依赖注入后的服务生命周期?

    asp.net core主要提供了三种依赖注入的方式

    其中AddTransient与AddSingleton比较好区别

    AddTransient瞬时模式:每次都获取一个新的实例

    AddSingleton单例模式:每次都获取同一个实例

    而AddTransient与AddScoped的区别更不容易区别一点

    首先这两种方式每次请求得到的都不是同一个对象,从这点看会发现这两个都一样。

    但是我们可以继续分细一点,虽然不同的请求得到的结果不同,但是我们可以在同一次请求中去获取多次实例测试。

    •   AddTransient注入方式获取两次实例
    services.AddTransient<IUserBLL, UserBll>();

      

       可以看到瞬时模式即使同一次请求中也是不同的对象

      

    •   AddScoped注入方式获取两次实例
    services.AddScoped<IUserBLL, UserBll>();

      可以发现AddScoped在同一次请求中,获取多次对象得到的是同一个对象

    小总结:

    AddTransient瞬时模式:每次请求,都获取一个新的实例。即使同一个请求获取多次也会是不同的实例

    AddScoped:每次请求,都获取一个新的实例。同一个请求获取多次会得到相同的实例

    AddSingleton单例模式:每次都获取同一个实例

  • 相关阅读:
    【[CQOI2015]选数】
    杜教筛
    【[CQOI2009]跳舞】
    【简单的数学题】
    【[SDOI2013]泉】
    【[AHOI2013]差异】
    【[HEOI2016/TJOI2016]序列】
    【[SDOI2008]Sandy的卡片】
    linux系统编程之信号(一)
    linux系统编程之进程(五)
  • 原文地址:https://www.cnblogs.com/bruce1992/p/14064017.html
Copyright © 2011-2022 走看看