Я пытаюсь понять концепцию промежуточного программного обеспечения в MVC6. Это все еще нечетко расплывчато для меня. Я не вижу различий между несколькими "стандартными" переменными, которые вы получаете в классе Startup
.
Насколько я могу судить, есть 3 разных способа сообщить приложению, что он должен использовать определенное промежуточное ПО?
Вы можете вызвать промежуточное программное обеспечение через службы. Но это похоже только на "добавление" промежуточного программного обеспечения?
services.AddMvc();
// Add other services
services.AddScoped<IMyCountriesRepository, MyCountriesRepository>();
services.AddScoped<IEmailer, Emailer>();
Тогда у вас есть IApplicationBuilder app
. Это фактически использовать промежуточное ПО, загруженное в сервисы? Поэтому вы можете называть его следующим:
app.UseMvc();
app.UseErrorPage(...);
app.UseIdentity(); // cookie authentication
И тогда есть способ загрузить и использовать промежуточное ПО следующим образом:
app.UseMiddleware<MyCustomMiddleware>();
В чем преимущество трех типов регистрации/использования промежуточного программного обеспечения? Каковы точные различия между ними?