Как иметь общий HttpContext для ASP.NET WebForms, MVC и CORE - PullRequest
0 голосов
/ 07 февраля 2019

Я работаю над библиотекой Nuget, которую можно использовать для веб-приложений (WebForms, MVC, CORE) и которая будет опубликована как для .NetFramework, так и .NetStandard.

В моей библиотеке мне нужно получить доступHttpContext для чтения Запроса, а также для перенаправления и записи в объекте Response.

Каков наилучший способ иметь общий HttpContext для всех трех сред WebForms, MVC и CORE?

Обратите внимание, чтоMicrosoft.Owin несовместим с .NetStandard, а также в WebForms и MVC существует класс System.Web.HttpContextBase, который совершенно отличается в проектах .NETCore, и у нас есть Microsoft.AspNetCore.Http.HttpContext.

1 Ответ

0 голосов
/ 07 февраля 2019

Ваша библиотека может быть организована следующим образом:

  1. Определить интерфейсы адаптера (более контекст HTTP и т. Д. ) в проекте с общим исходным кодом
  2. Определите реализации всех этих интерфейсов в конкретном проекте Core или Classic - создайте оба.Там у вас должно быть 3 проекта в вашем решении.
  3. Теперь ваша библиотека - это 4-й проект, это должен быть многоцелевой , используйте условные символы для включения или выключения адаптеров "Classic" или "Core".Используйте адаптеры для доступа к « Http Context и т. Д. ».
...