Запутался в использовании и значении контекста в C # - PullRequest
1 голос
/ 05 июня 2019

Я новичок, который только что закончил мой первый год в колледже.Я взял два вступления, чтобы составить классы по науке, и у меня достаточно прочные фундаментальные знания Java, а также основные идеи языка ООП.Я никогда не использовал C # раньше, и моя практика требует этого.Моя задача состояла в том, чтобы запустить приложение MVC, которое выполняет некоторую базовую задачу, но я запутался в использовании «контекста» в этой ситуации.Я использую Microsoft Virtual Studio с пустым шаблоном ASP.NET MVC.Здесь я нахожу «контекст» для использования.Я в основном не понимаю, как и почему он используется в этом методе.

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }

        app.Use

        app.Run(async (context) =>
        {
            await context.Response.WriteAsync("Hello World!");
        });
    }

1 Ответ

1 голос
/ 05 июня 2019

Этот код

app.Run(async (context) =>
    {
        await context.Response.WriteAsync("Hello World!");
    });

Указывает ASP.NET Core «запустить» промежуточное ПО.Запуск промежуточного программного обеспечения означает, что с учетом HttpContext прочитайте запрос и запишите результат - в отличие от «использования» промежуточного программного обеспечения, что означает, что промежуточное программное обеспечение может выполняться или может откладывать выполнение до следующего промежуточного программного обеспечения в цепочке.Это характерно для ASP.NET Core, а не для C #.

Метод app.Run() ожидает делегата в форме асинхронной функции, которая принимает один параметр HttpContext.Лямда-выражение (context)=> { } является сокращением для анонимной функции с единственным параметром с именем context.Компилятор C # распознает тип context на основе ожидаемого прототипа.Вы можете написать этот код так:

app.Run(helloWorldHandler);
...

private async Task helloWorldHandler(HttpContext context) {
   await context.Response.WriteAsync("Hello World!");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...