Model (Etki Alanı) nesnelerini, Görünümlerim tarafından tüketilen ViewModel nesnelerine Model/Görünüm/Görünüm Modeli deseninde eşlemek için sıklıkla OtomatikMapper kullanıyorum.'CreateMap' ifadeleri nereye gitmeli?
Bu, tümünün çalıştırılması gereken birçok 'Mapper.CreateMap' ifadesini içerir, ancak uygulamanın yaşam döngüsünde yalnızca kez çalıştırılmalıdır.
Teknik olarak o zaman, hepsini Application_Start() yönteminden çağrılan statik bir yöntemde tutmalıyım (bu bir ASP.NET MVC uygulamasıdır). Bununla birlikte, bir çok farklı haritalama sorununu tek bir merkezi konumda bir araya getirmenin yanlış olduğu görülmektedir. Özellikle eşleme kodu karmaşıklaştığı ve biçimlendirme ile diğer mantığı içerdiğinde.
Eşleme kodunu düzenlemenin daha iyi bir yolu var mı? Böylece, ilgili ViewModel'e yakın tutuluyor mu? örneği başlatıldığında, bu yöntemin çağrılması BaseViewModel her ViewModel bir 'CreateMappings' yöntemi olan ve ancak yöntem yalnızca uygulama yaşam döngüsü içinde kez denilen edilmesi gerektiğinden, -
(Bir fikir geldi. CreateMappings yönteminin çağrıldığı ViewModel türlerinin bir listesini önbelleğe almak için bazı ek mantıklara gereksinim duyar ve o zaman bu listede olmayan ViewModels için yalnızca gerektiğinde bunu çağırır.)
Ama yine aynı kefeye tüm farklı görüntüleme modelleri için tüm eşleştirmeleri sahip sorununu çözmez, ben tercih ederdim ne zaman Bir şekilde başvurdukları sınıflarla ilgili. – Jonathan