Ich versuche, einen Controller zu erstellen, der bestimmte Blogposts aus dem Blog abruft. Ich möchte die Top 20 Beiträge & die 20 am besten bewerteten Beiträge abrufen.Verwenden Sie den IBlogService (oder einen anderen Dienst) in einem Orchard-Modul
Dafür habe ich einen Controller erstellt, der diese Informationen abrufen wird. Nach dem Einstieg in das Standard-Orchard-Blog-Modul sehe ich, dass ich den IBlogService oder den IBlogPostService brauche. Ich sehe diese injiziert werden in der BlogPostController, etwa so:
public BlogPostController(
IOrchardServices services,
IBlogService blogService,
IBlogPostService blogPostService,
IFeedManager feedManager,
IShapeFactory shapeFactory)
Aber wie sind diese Dienste verdrahtet/verknüpften/injiziert? Ich kann den Code, in dem der Konstruktor aufgerufen wird, weder finden, noch kann ich eine Verkabelung finden, wie ich sie in StructureMap gewohnt bin.
Kann ich einfach Iservices im Konstruktor hinzufügen und wird Orchard sicherstellen, dass ich die richtigen Objekte habe, oder muss ich vorher etwas tun?
Im Moment meiner Klasse wie diese (Standard) aussieht:
public class FrontpageController : Controller
{
public IOrchardServices Services { get; set; }
public FrontpageController(IOrchardServices services)
{
Services = services;
T = NullLocalizer.Instance;
}
public Localizer T { get; set; }
[HttpGet]
public ActionResult Index()
{
//Do something to get blogposts
throw new NotImplementedException();
}
}
Danke! Ich habe schon so etwas vermutet, aber ich konnte in der Lösung keine Verdrahtung/Setup-Klasse/Datei finden. Werde es ausprobieren! –
Keine Sorge :) Ich würde empfehlen, einige der AutoFac-Dokumentation zu lesen oder etwas mit AutoFac zu schreiben, da ich festgestellt habe, dass es mir wirklich geholfen hat, den ganzen IoC-Kram zu verstehen. – mdm
Darüber hinaus sollten Sie Orchard.Blogs auch als eine Abhängigkeit von allen Features deklarieren, in die Sie diese Schnittstelle injizieren, andernfalls können Sie beim Aktivieren/Deaktivieren von Features in Unordnung geraten. Die Abhängigkeiten können in der Datei module.txt deklariert werden. –