Как найти сборку Entry в Lib при размещении в консоли или ASP.NET Core - PullRequest
0 голосов
/ 25 июня 2018

У меня был следующий код в v4.n .NET Framework

    /// <summary>
    /// Return the Entry Assembly for both windows or ASP.NET
    /// runtimes
    /// </summary>
    private static Assembly GetEntryAssembly()
    {
        if (HttpContext.Current == null ||
            HttpContext.Current.ApplicationInstance == null)
        {
            return Assembly.GetEntryAssembly();
        }

        var type = HttpContext.Current.ApplicationInstance.GetType();
        while (type != null && type.Namespace == "ASP")
        {
            type = type.BaseType;
        }

        return type == null ? null : type.Assembly;
    }

Это работало нормально и означало, что его можно использовать как из консоли / exe, так и из приложения ASP.NET.

Теперь мы переносим код на .NET Core (Standard), и теперь HttpContext.Current был удален в пользу автоматического внедрения зависимостей.

Однако это будет означать, что простой lib, которая хочет знать только сборку записи, внезапно придется узнать о IHttpContextAccessor.Это определенно будет пахнуть кодом!

В новом мире .Core, какой лучший способ заменить эту функциональность?

Спасибо

Стив

1 Ответ

0 голосов
/ 25 июня 2018

Вы можете использовать Assembly.GetEntryAssembly() для этой цели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...