Pergunta

Eu quero ter um aplicativo de console que eu usaria para tornar a saída para um arquivo.

Pseudocódigo:

ComponentBaseController controller = new ComponentBaseController();
SaveToFile("output.html", controller.Result);

Eu não estou usando o código real aqui desde que eu já tentou diferentes abordagens, mas nada me fica próximo.

O mais próximo que eu tenho usando Dica # 25 de Stephen Walther , é esta:

ComponentBaseController controller = new ComponentBaseController();

RouteData routeData = new RouteData();
routeData.Values.Add("controller", "ComponentBase");

var fakeContext = new FakeControllerContext(controller, routeData);

var result = controller.Details("klasta7") as PartialViewResult;
result.ExecuteResult(fakeContext);
Console.Write(fakeContext.HttpContext.Response.ToString());

Este lança uma System.InvalidOperationException que a vista parcial não pôde ser encontrado. Tentaram locais diferentes para exibição de pasta, mas sem sorte.

Todas as idéias? Obrigado!

Foi útil?

Solução

Eu não sou um para tentar a recomendar algo diferente do que você está pedindo para fazer, mas concordo com Wyatt, o objetivo parece um pouco sobre o lado pegajoso, e na melhor das hipóteses vai criar algum cheiro de código. Se você simplesmente precisa para salvar a saída renderizada para um arquivo, eu acho que seria mais fácil ter um serviço de aplicativo que é chamada quando você precisa fazer o salvar, provavelmente a partir do controlador. Nesse caso, você teria acesso a uma corrente HttpContext, rotas, etc.

Se é um aplicativo separado completamente (existe o aplicativo de console em seu próprio), que sobre a criação de um serviço de dentro do aplicativo web que tem um método a aplicação de console poderia chamar para recuperar a saída processada?

Outras dicas

Vai ser complicado para obter material para tornar sem que hospeda o aplicativo em algo como não há HttpContext, etc.

Agora, usando WebRequest para páginas de agarrar a partir de uma versão em execução do aplicativo e despejá-los para o disco é um pouco mais factível.

Finalmente, isso soa um pouco FUBAR. Qual é o objetivo dessa operação?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top