Обязательные зависимости для Resolver или ServiceProvider для использования ICompositeViewEngine

Я пытаюсь использовать ICompositeViewEngine в ASP.NET Core MVC для замены ViewEngine из System.Web.Mvc, поскольку он больше не доступен в .NET Core. Я обычно пытаюсь перенести веб-форму из ASP.NET в ASP.NET Core в этом проекте.

Я нашел следующее решение:Где находятся свойства ControllerContext и ViewEngines в MVC 6 Controller? и я верю, что это может решить мою проблему. Я также нашел аналогичное создание движка с ServiceProvider в вопросе github:https://github.com/aspnet/Mvc/issues/3091

Тем не менее, я не уверен, какие зависимости или структуры мне могут не хватать, так как я очень новичок в .NET. У меня есть следующие пространства имен:

using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.ViewEngines;
using Microsoft.AspNetCore.Mvc.ViewFeatures;
using Microsoft.Extensions.DependencyInjection;

Я верю, что это может быть связано с моей проблемой.

Мой оригинальный код:

    public static string RenderPartialToString(Controller controller, string viewName, object model)
    {
        controller.ViewData.Model = model;

        using (StringWriter sw = new StringWriter())
        {
            ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(controller.ControllerContext, viewName);
            ViewContext viewContext = new ViewContext(controller.ControllerContext, viewResult.View, controller.ViewData, controller.TempData, sw);
            viewResult.View.Render(viewContext, sw);

            return "document.write('" + sw.GetStringBuilder().Replace('\n', ' ').Replace('\r', ' ').Replace("'","\\'").ToString() + "');";
        }
    }

И теперь я пытаюсь использовать одно из следующих:

 var engine = Resolver.GetService(typeof(ICompositeViewEngine)) as ICompositeViewEngine;
 var engine2 = IServiceProvider.GetService(typeof(ICompositeViewEngine)) as ICompositeViewEngine;

Я на правильном пути, чтобы это исправить? Есть ли более простой способ заменить System.Web.Mvc ViewEngines в .NET Core? Что мне нужно исправить "не существует в текущем контексте"ошибки для Resolver и / или ServiceProvider?

Благодарю. Я надеюсь, что смог следовать принципам вопроса.

Изменить: Пожалуйста, дайте мне знать, если я должен включить что-нибудь еще из моего кода для этого вопроса. В настоящее время я читаю о внедрении зависимости, чтобы лучше понять ситуацию.

Ответы на вопрос(1)

Ваш ответ на вопрос