KnigkinDom.org» » »📕 Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен

Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен

Книгу Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен читаем онлайн бесплатно полную версию! Чтобы начать читать не надо регистрации. Напомним, что читать онлайн вы можете не только на компьютере, но и на андроид (Android), iPhone и iPad. Приятного чтения!

1 ... 376 377 378 379 380 381 382 383 384 ... 407
Перейти на страницу:

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
class="code">  if (env.IsDevelopment())

  {

    app.UseDeveloperExceptionPage();

  }

  else

  {

    app.UseExceptionHandler("/Home/Error");

    app.UseHsts();

  }

  app.UseHttpsRedirection();

  app.UseStaticFiles();

  app.UseRouting();

  app.UseAuthorization();

  app.UseEndpoints(endpoints =>

  {

    endpoints.MapControllerRoute(

      name: "default",

      pattern: "{controller=Home}/{action=Index}/{id?}");

  });

}

Метод Configure() также проверяет среду, и если она установлена в Development (среда разработки), тогда в конвейер обработки добавляется промежуточное ПО UseDeveloperExceptionPage(). Для любой другой среды в конвейер обработки добавляется универсальное промежуточное ПО UseExceptionHandler() и поддержка протокола строгой транспортной безопасности HTTP (HTTP Strict Transport Security — HSTS). Как и в аналоге для API, добавляется вызов app.UseHttpsRedirection(). Следующим шагом является добавление поддержки статических файлов с помощью вызова app.UseStaticFiles(). Поддержка статических файлов включается как мера по усилению безопасности. Если ваше приложение в ней не нуждается (подобно API-интерфейсам), тогда не добавляйте такую поддержку. Затем добавляется промежуточное ПО для маршрутизации, авторизации и конечных точек.

Добавьте в метод параметр типа АрplicationDbContext и вызовите InitializeData() из AutoLot.Dal. Вот модифицированный код:

public void Configure(

  IApplicationBuilder app,

  IWebHostEnvironment env,

  ApplicationDbContext context)

{

  if (env.IsDevelopment())

  {

    // Если среда разработки, тогда отображать отладочную информацию.

    app.UseDeveloperExceptionPage();

    // Инициализировать базу данных.

   if (Configuration.GetValue<bool>("RebuildDataBase"))

    {

      SampleDataInitializer.InitializeData(context);

    }

  }

  ...

}

Обновите файл appsettings.development.json с учетом свойства RebuildDataBase (пока что установив его в false):

{

  "Logging": {

    "LogLevel": {

      "Default": "Information",

      "Microsoft": "Warning",

      "Microsoft.Hosting.Lifetime": "Information"

    }

  },

  "RebuildDataBase": false,

  "ConnectionStrings": {

    "AutoLot": "Server=db;Database=AutoLotPresentation;

    User ID=sa;Password=P@ssw0rd;"

  }

}

Стандартный шаблон настраивает в методе UseEndpoints() маршрутизацию на основе соглашений. Ее понадобится отключить и повсюду в приложении применять маршрутизацию с помощью атрибутов. Закомментируйте (или удалите) вызов MapControllerRoute() и замените его вызовом MapControllers():

app.UseEndpoints(endpoints =>

{

  endpoints.MapControllers();

});

Далее добавьте атрибуты маршрутов к HomeController в приложении AutoLot.Mvc. Первым делом добавьте шаблон контроллер/действие к самому контроллеру:

[Route("[controller]/[action]")]

public class HomeController : Controller

{

  ...

}

Затем добавьте три маршрута к методу Index(), так что он будет стандартным действием, когда не указано действие либо когда не указан контроллер или действие. Кроме того, снабдите метод атрибутом HttpGet, чтобы явно объявить его действием GET:

[Route("/")]

[Route("/[controller]")]

[Route("/[controller]/[action]")]

[HttpGet]

public IActionResult Index()

{

  return View();

}

Ведение журнала

Базовая инфраструктура ведения журнала добавляется в контейнер DI как часть процесса запуска и конфигурирования. Инфраструктура ведения журнала использует довольно простой интерфейс ILogger<T>. Основополагающим компонентом ведения журнала является класс LoggerExtensions, определения методов которого показаны ниже:

public static class LoggerExtensions

{

  public static void LogDebug(this ILogger logger, EventId eventId,

    Exception exception, string message, params object[] args)

  public static void LogDebug(this ILogger logger, EventId eventId,

    string message, params object[] args)

  public static void LogDebug(this ILogger logger, Exception exception,

    string message, params object[] args)

  public static void LogDebug(this ILogger logger,

    string message, params object[] args)

  public static void LogTrace(this ILogger logger, EventId eventId,

    Exception exception, string message, params object[] args)

  public static void LogTrace(this ILogger logger, EventId eventId,

    string message, params object[] args)

  public static void LogTrace(this ILogger logger, Exception exception,

    string message, params object[] args)

  public static void LogTrace(this ILogger logger,

    string message, params object[] args)

    Exception exception, string message, params object[] args)

  public static void LogInformation(this ILogger logger, EventId eventId,

    string message, params object[] args)

  public static void LogInformation(this ILogger logger, Exception exception,

    string message, params object[] args)

  public static void LogInformation(this ILogger logger,

    string message, params object[] args)

  public static void LogWarning(this ILogger logger, EventId eventId,

    Exception exception, string message, params object[] args)

  public static void LogWarning(this ILogger logger, EventId eventId,

    string message, params object[] args)

  public static void LogWarning(this ILogger logger, Exception exception,

    string message, params object[] args)

  public static void LogWarning(this ILogger logger,

    string message, params object[] args)

  public static void LogError(this ILogger logger, EventId eventId,

    Exception exception, string message, params object[] args)

  public static void LogError(this ILogger logger, EventId eventId,

    string message, params object[] args)

  public static void LogError(this ILogger logger, Exception exception,

    string message, params object[] args)

  public static void LogError(this ILogger logger,

    string message, params object[] args)

  public static void LogCritical(this ILogger logger, EventId eventId,

    Exception exception, string message, params object[] args)

  public static void LogCritical(this ILogger logger, EventId eventId,

    string message, params object[] args)

  public static void LogCritical(this ILogger logger, Exception exception,

    string message, params object[] args)

  public static void LogCritical(this ILogger logger,

    string message, params object[] args)

  public static void Log(this ILogger logger, LogLevel logLevel,

    string message, params object[] args)

  public static void Log(this ILogger logger, LogLevel logLevel, EventId eventId,

    string message, params object[] args)

  public static void Log(this ILogger logger, LogLevel logLevel,

    Exception exception, string message, params object[] args)

  public static void Log(this ILogger logger, LogLevel logLevel, EventId eventId,

    Exception exception, string

1 ... 376 377 378 379 380 381 382 383 384 ... 407
Перейти на страницу:
Отзывы - 0

Прочитали книгу? Предлагаем вам поделится своим отзывом от прочитанного(прослушанного)! Ваш отзыв будет полезен читателям, которые еще только собираются познакомиться с произведением.


Уважаемые читатели, слушатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор knigkindom.ru.


Партнер

Новые отзывы

  1. Гость Наталия Гость Наталия30 июль 23:31 Спасибо автору. Книга интересная, увлекательная, легко читается, оставляет приятные впечатления. Желаю автору дальнейших... Королева драконов - Анна Минаева
  2. Гость Татьяна Гость Татьяна30 июль 22:31 Душевная книга, очень люблю Михалкову, произведения всегда сочные, с неожиданным концом. Много личных историй героев, читаются... Посмотри, отвернись, посмотри - Елена Ивановна Михалкова
  3. Гость Ольга Гость Ольга30 июль 19:51 Двоякое впечатление от книги. С одной стороны, интересные истории пациентов, интересные рассказы об операциях, с другой - слишком... На пути к сердцу. Записки кардиохирурга - Асланбек Аслудинович Дубаев
Все комметарии
Новое в блоге