在面试中,.NET Core WebAPI 开发工程师的问题通常涉及基础知识、框架机制、性能优化、安全性、测试及部署等方面。以下是经典问题及建议回答。
一、.NET Core 基础
1. 什么是 .NET Core,和 .NET Framework 有什么区别?
.NET Core 是一个开源的、跨平台的框架,适用于构建 Web 应用、云服务、控制台应用等。与仅支持 Windows 的 .NET Framework 相比,.NET Core 支持 Windows、Linux 和 macOS。其模块化设计减少了应用体积,支持更快的启动速度和更低的内存占用。
2. 什么是依赖注入(DI)?为什么要使用依赖注入?
依赖注入是一种设计模式,通过将对象的依赖关系从内部解耦,使模块间不再直接依赖,而是通过外部传入。这提高了代码的可测试性和可维护性。在 .NET Core 中,DI 是内置的,可在 Startup.cs 的 ConfigureServices 方法中注册服务。
3. 如何在 .NET Core 中创建一个 Web API?
创建步骤如下:
- 默认生成的
Startup.cs包含配置服务和中间件的代码,如注册AddControllers服务,启用控制器支持,以及配置路由和中间件(app.UseRouting()和app.UseEndpoints())。 - 控制器类继承
ControllerBase来创建 API。
示例代码:
[ApiController]
[Route("api/[controller]")]
public class WeatherForecastController : ControllerBase
{
private static readonly string[] Summaries = new[]{
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Hot", "Sweltering"
};
[HttpGet]
public IEnumerable<WeatherForecast> Get()
{
var rng = new Random();
return Enumerable.Range(1, 5).Select(index => WeatherForecast
{
Date = DateTime.Now.AddDays(index),
TemperatureC = rng.Next(, ),
Summary = Summaries[rng.Next(Summaries.Length)]
}).ToArray();
}
}


