Question

Je souhaite disposer d'une application console à utiliser pour le rendu de la sortie dans un fichier.

Pseudocode:

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

Je n'utilise pas de code réel ici car j'ai essayé différentes approches, mais rien ne me rapproche.

Le plus proche que j'ai eu en utilisant Le conseil n ° 25 de Stephen Walther , est-ce:

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

Ceci lève une exception System.InvalidOperationException indiquant que la vue partielle est introuvable. J'ai essayé différents emplacements pour le dossier Vues, ??mais sans succès.

Des idées? Merci!

Était-ce utile?

La solution

Je ne suis pas du genre à essayer de recommander autre chose que ce que vous demandez, mais je suis d’accord avec Wyatt, l’objectif semble plutôt collant et, au mieux, créera une odeur de code. Si vous avez simplement besoin de sauvegarder la sortie rendue dans un fichier, je pense qu'il serait plus facile de faire appel à un service d'application appelé lorsque vous devez effectuer la sauvegarde, probablement à partir du contrôleur. Dans ce cas, vous auriez accès à un HttpContext, des itinéraires, etc. actuels.

S'il s'agit d'une application totalement distincte (l'application de la console existe par elle-même), qu'en est-il de la configuration d'un service à partir de l'application Web qui possède une méthode que l'application de la console pourrait appeler pour récupérer la sortie rendue?

Autres conseils

Il sera difficile d'obtenir un rendu sans héberger l'application dans quelque chose car il n'y a pas de HttpContext, etc.

Désormais, utiliser WebRequest pour récupérer des pages d'une version en cours de l'application et les transférer sur le disque est un peu plus faisable.

Enfin, cela sonne un peu FUBAR. Quel est le but de cette opération?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top