Ich bin damit beschäftigt, mein erstes nicht-example Orchard-Modul zu entwickeln. Es ist eine Handvoll von Controllern und Ansichten, mit benutzerdefinierten (EF) Datenzugriff und ist weitgehend unabhängig von Orchard Content-Typen und Teilen. Normalerweise richte ich Mappings in einem Application_Start-Handler ein, aber da die Aktionen in diesem MVC-Modul im Kontext der Orchard-Anwendung aufgerufen werden, habe ich diesen Einstiegspunkt nicht mehr. Meine offensichtlichste und unmittelbarste Lösung besteht darin, die Mapping-Initialisierung in statische Konstruktoren für gemappte Ansichtsmodelle, z.Wo kann ich AutoMapper-Zuordnungen in einem Orchard-Modul initialisieren?
public class ApplicantPersonalDetailsModel : MappedViewModel<Applicant>
{
static ApplicantPersonalDetailsModel()
{
Mapper.CreateMap<Applicant, ApplicantPersonalDetailsModel>().Bidirectional();
}
....
}
Wie sonst kann ich das tun? Gibt es einen besseren Weg, dies in MVC3/4 im Allgemeinen zu tun, oder vorzugsweise, ein Ereignis oder einen Haken, den ich in der Orchard-Anwendung greifen kann, um dies auch beim Anwendungsstart zu erreichen?
Kann 'InitPartRecord' dann nur ein Dummy sein, d. H. Leer, Klasse? Ruft Orchard nur Init auf allen Handlern an, oder muss ich irgendwo ein Teil registrieren, auch wenn ich keinen anderen Code schreibe, um es zu definieren? –
ProfK
Ja, es kann.InitPartHandler wird Handler-Liste abonniert werden, indem Sie einfach von ContentHandler.and und die InitPart und InitPartRecord wäre eine Dummy-Klasse wie Sie erwähnt.cehck meine Bearbeitung. –