Разрешение реализации интерфейса в библиотеке классов. net стандарт 2.0 - PullRequest
0 голосов
/ 18 марта 2020

TL; DR Есть ли способ разрешить реализацию IHttpContextAccessor в этом коде в. net стандартная библиотека классов 2:

public static class HttpContext
{
    private static Microsoft.AspNetCore.Http.IHttpContextAccessor m_httpContextAccessor;


    public static void Configure(Microsoft.AspNetCore.Http.IHttpContextAccessor httpContextAccessor)
    {
        m_httpContextAccessor = httpContextAccessor;
    }


    public static Microsoft.AspNetCore.Http.HttpContext Current
    {
        get
        {
            return m_httpContextAccessor.HttpContext;
        }
    }

}

Контекст: у меня есть приложение (больше похожее на библиотеку) это на. net framework 4.6.2, который необходимо перенести на. net standard / core, чтобы он мог работать на linux. Я решил go с. net стандарта 2.0, потому что это в основном просто большая библиотека классов, которая используется как dll внешними приложениями.

Проблема, с которой я столкнулся, состоит в том, что это приложение / библиотека использует HttpContext, который не поставляется из коробки со стандартом. net. Я нашел это довольно аккуратное решение: Доступ к текущему HttpContext в ASP. NET Core . Проблема с этим решением состоит в том, что, поскольку все проекты являются библиотеками классов, нет начальной точки, в которой я могу использовать DI-контейнер для автоматического разрешения его реализации (IHttpContextAccessor). Поэтому мой вопрос здесь заключается в том, есть ли способ для меня реализовать HttpContext, предоставленный в этом решении, в моей. net стандартной библиотеке классов 2.0?

PS: я прочитал в связанном вопросе о методе CallContextServiceLocator, но Мне не удалось найти какую-либо информацию или пример использования, и я понятия не имею, применимо ли это к моей ситуации.

...