Я прошел превосходный курс по множественному пониманию и внес изменения в код в соответствии с моим собственным приложением.
В курсе при создании проекта использовался ASP.NET CORE 2.0.Я использовал 2.1, думая, что особой разницы не будет.
Однако я натолкнулся на разницу в двух версиях.
• Начать новый проект: testcore2.0
• Выберите API и версию ASP.NET Core 2.0, нажмите OK. Затем проект запущен и запущен
• Добавьте папку «Помощники»
• В папке «Помощники» добавьте класс: TestHelper.cs
• Добавить строковое свойство в класс TestHelper
namespace TestCore20.Helpers
{
public class TestHelper
{
public string TestString { get; set; } = "string";
}
}
• В ValuesController.cs добавить предложение using с помощью TestCore20.Helpers;
using TestCore20.Helpers;
• В методе Get добавьте TestHelper в качестве параметра. В методе Get добавьте строковую переменную, которая получит строку Teststring в TestHelper, и установите для нее точку останова.
[HttpGet]
public IEnumerable<string> Get(TestHelper th)
{
string testString = th.TestString;
return new string[] { "value1", "value2" };
}
Если вы затем запуститепроект останавливается в точке останова, и вы можете проверить th и подтвердить, что он был инициирован.
Все это работает как положено.
Однако, если мы повторим шаги в новом проекте и используем ASP.NET CORE 2.1-й классs возвращает нулевую ссылку.Он не инициализирован.
Как получить объект для инициализации в ASP.NET CORE 2.1?