Frage

Ich mag eine Konsolenanwendung, die ich verwenden würde die Ausgabe in eine Datei zu machen.

Pseudocode:

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

Ich bin nicht mit echtem Code hier, da ich verschiedene Ansätze versucht, aber nichts wird mich in der Nähe.

Die nächstgelegene ich habe mit Tipp # 25 von Stephen Walther , ist dies:

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());

Dies löst eine System.InvalidOperationException, dass die Teilansicht konnte nicht gefunden werden. Versucht, verschiedene Standorte für Ordner Ansichten, aber kein Glück.

Irgendwelche Ideen? Dank!

War es hilfreich?

Lösung

Ich bin eine nicht zu versuchen, etwas anderes als empfehlen, was Sie tun zu fragen, aber ich stimme mit Wyatt, ist das Ziel ein wenig auf der klebrigen Seite scheint, und im besten Fall wird einigen Code Geruch zu schaffen. Wenn Sie einfach nur die gerenderte Ausgabe in eine Datei speichern müssen, ich denke, es einfacher sein würde, einen App-Dienst zu haben, die aufgerufen werden, wenn Sie das tun müssen, um speichern, von der Steuerung wahrscheinlich. In diesem Fall würden Sie Zugriff auf einen aktuellen Httpcontext haben, Routen, usw.

Wenn es eine separate App ist insgesamt (die Konsole App existiert auf seine eigenen), was über einen Service aus dem Web-App einrichten, die eine Methode der Konsole App hat könnte rufen Sie die gerenderte Ausgabe abrufen?

Andere Tipps

Es wird schwierig sein, Sachen zu erhalten, ohne die Ausrichtung der App in etwas zu machen, da es keine Httpcontext ist, usw.

Nun WebRequest mit Seiten von einer laufenden Version des App greifen und sie auf der Festplatte Dumping ist ein bisschen mehr machbar.

Schließlich, das klingt ein bisschen FUBAR. Was ist das Ziel dieser Operation?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top