Как использовать HttpContext в старом приложении веб-форм ASP.NET и новом базовом приложении ASP.NET - PullRequest
0 голосов
/ 01 февраля 2019

Я преобразую все наши разделяемые библиотеки классов из .NET Framework в .NET Standard, чтобы они могли использоваться как нашими старыми .NET Framework, так и нашими новыми приложениями .NET Core.Цель состоит в том, чтобы перевести все наши приложения на .NET Core, но это большая система, поэтому потребуется время, поэтому нам нужно, чтобы два мира сосуществовали в течение года или около того.

Одна из трудностейДело в том, что код библиотеки общего класса широко использует HttpContext.Я понимаю, что новый .NET Core способ получить к нему доступ из библиотек классов - это использовать AddHttpContextAccessor .Однако у нас все еще есть старые приложения веб-форм ASP.NET И новые веб-приложения ASP.NET Core, которые должны вызывать этот общий код.Если я переключусь на использование HttpContextAccessor с DI, он не будет работать со старым приложением ASP.NET Web Forms, так как не имеет понятия о том, что такое HttpContextAccessor.

Мне интересно, какие у меня есть варианты.Есть ли способ настроить доступ к HttpContext таким образом, чтобы он мог использоваться как в веб-формах ASP.NET, так и в ASP.NET Core?

1 Ответ

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

У меня должен быть какой-то общий интерфейс между старыми и новыми приложениями.

Создайте новый IMyHttpContext и вставьте этот тип в старое и новое.Используйте свою инфраструктуру DI для создания нового MyClassForOld: IMyHttpContext, который обращается к базовой ссылке HttpContext для старых приложений, и используйте свой DI для создания другого нового MyClassForNew: IMyHttpContent, который обращается к базовой ссылке на HttpContextAccessor

...