Привет. Я следую инструкциям из учебника. Используя dotnet new webapi
, я получаю проект, отличный от показанных на уроке, и с компьютера другого человека, на котором я это тестировал. Мы получаем в основном те же файлы, но у меня есть один дополнительный WeatherForcast.cs
, и вместо ValuesController.cs
я получаю WeatherForcastController.cs
с совершенно другим кодом, который я выложу внизу.
Есть также некоторые меньшие различия в Program.cs
и Startup.cs
Чем объясняется эта разница? Как мне сгенерировать файлы, как я пытаюсь, из примеров?
ОТВЕТ: Ответ заключается в том, что по умолчанию он был установлен. NET SDK 3.1, который я установил, но в этом руководстве я использую. NET SDK 2.2. Выполнение команды dotnet new webapi --framework netcoreapp2.2
дает мне версию этого веб-интерфейса, который я ищу.
Мой контроллер WeatherForcastController.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
namespace Testing.Controllers
{
[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
{
private static readonly string[] Summaries = new[]
{
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
};
private readonly ILogger<WeatherForecastController> _logger;
public WeatherForecastController(ILogger<WeatherForecastController> logger)
{
_logger = logger;
}
[HttpGet]
public IEnumerable<WeatherForecast> Get()
{
var rng = new Random();
return Enumerable.Range(1, 5).Select(index => new WeatherForecast
{
Date = DateTime.Now.AddDays(index),
TemperatureC = rng.Next(-20, 55),
Summary = Summaries[rng.Next(Summaries.Length)]
})
.ToArray();
}
}
}
Пример и другой контроллер компьютера ValuesController.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
namespace CretaceousPark.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class ValuesController : ControllerBase
{
// GET api/values
[HttpGet]
public ActionResult<IEnumerable<string>> Get()
{
return new string[] { "value1", "value2" };
}
// GET api/values/5
[HttpGet("{id}")]
public ActionResult<string> Get(int id)
{
return "value";
}
// POST api/values
[HttpPost]
public void Post([FromBody] string value)
{
}
// PUT api/values/5
[HttpPut("{id}")]
public void Put(int id, [FromBody] string value)
{
}
// DELETE api/values/5
[HttpDelete("{id}")]
public void Delete(int id)
{
}
}
}