Dependências necessárias para o Resolver ou ServiceProvider para usar ICompositeViewEngine
Estou tentando usar o ICompositeViewEngine no ASP.NET Core MVC para substituir o ViewEngine do System.Web.Mvc, pois ele não está mais disponível no .NET Core. Geralmente, estou tentando migrar um formulário da Web do ASP.NET para o ASP.NET Core neste projeto.
Encontrei a seguinte solução:Onde estão as propriedades ControllerContext e ViewEngines no MVC 6 Controller? e acredito que isso possa resolver meu problema. Também encontrei uma criação de mecanismo semelhante com o ServiceProvider em uma pergunta do github:https://github.com/aspnet/Mvc/issues/3091
No entanto, não tenho certeza sobre quais dependências ou estruturas posso estar ausente, pois sou muito novo no .NET. Eu tenho os seguintes namespaces:
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.ViewEngines;
using Microsoft.AspNetCore.Mvc.ViewFeatures;
using Microsoft.Extensions.DependencyInjection;
Que acredito estar relacionado ao meu problema.
Meu código original é:
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() + "');";
}
}
E agora estou tentando usar um dos seguintes:
var engine = Resolver.GetService(typeof(ICompositeViewEngine)) as ICompositeViewEngine;
var engine2 = IServiceProvider.GetService(typeof(ICompositeViewEngine)) as ICompositeViewEngine;
Estou no caminho certo para corrigir isso? Existe uma maneira mais fácil de substituir o System.Web.Mvc ViewEngines no .NET Core? O que preciso corrigir "não existe no contexto atual"erros para o Resolver e / ou ServiceProvider?
Obrigado. Espero ter conseguido seguir as orientações da pergunta.
Editar: informe-me se devo incluir mais alguma coisa do meu código para esta pergunta. Atualmente, estou lendo sobre injeção de dependência para entender melhor a situação.