Итак, я наткнулся на этот пример кода RazorPages
using Microsoft.AspNetCore.Mvc;
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}
и у меня вопрос: откуда взялся context ? Я смотрю на
options => { ... }
как на функцию анонимного делегата с частью слева от лямбда-оператора, а options, являющийся параметром, который передается в блок выражения, где context является. Но контекст не отображается нигде в Startup.cs, и компилятор, похоже, не возражает, когда я комментирую
using Microsoft.AspNetCore.Mvc;
Is. Net, что делает что-то прозрачно за кулисами, чтобы обеспечить context to options.CheckConsentNeeded, и если бы я написал это заявление вручную, как бы я узнал, что context доступен и откуда он берется?