SORU
26 Temmuz 2011, Salı


AutoMapper yere.CreateMaps?

ASP.NET MVC Uygulama AutoMapper kullanıyorum. Çok yük var gibi AutoMapper.CreateMap başka bir yerde hayatıma devam etmem gerektiğini söylediler. Benim uygulama sadece 1 yerde bu aramaları koymak için tasarım nasıl emin değilim.

Web katman hizmet katmanı ve veri katmanı var. Her biri kendi başına bir proje. Dİ her şey için Ninject kullanıyorum. Hem web hem de hizmet katmanları AutoMapper kullanmak ederim.

AutoMapperKur'nin CreateMap? ne yani Nereye koyuyorsun? Nasıl diyorsunuz?

CEVAP
26 Temmuz 2011, Salı


Önemli değil, statik bir sınıf olduğu sürece. Tüm ilgiliKongre.

BizimKongreher bir "katman" (web, Hizmetleri, data) tek bir dosya var tek bir yöntem ile ** 9, adlı X tabaka nerede Configure() denir.

Configure() Bu yöntem daha sonra her alan için private yöntemlerini çağırır.

İşte web tier bizim config bir örnek:

public static class AutoMapperWebConfiguration
{
   public static void Configure()
   {
      ConfigureUserMapping();
      ConfigurePostMapping();
   }

   private static void ConfigureUserMapping()
   {
      Mapper.CreateMap<User,UserViewModel>();
   } 

   // ... etc
}

Her "" (Kullanıcı, Post), çok güzel şeyler. ayrılmıştır toplamak için bir yöntem oluşturun

Sonra Global.asax:

AutoMapperWebConfiguration.Configure();
AutoMapperServicesConfiguration.Configure();
AutoMapperDomainConfiguration.Configure();
// etc

Bir "arayüz" zorlayamaz, ama beklersin, gerekli. Eğer (ve yeniden) kodu, böylece bir kelime gibi.

DÜZENLEME:

Ben şimdi AutoMapper yukarıdaki örnek olur profiles,: kullanan bahsetmek istiyorum

public static class AutoMapperWebConfiguration
{
   public static void Configure()
   {
      Mapper.Initialize(cfg =>
      {
        cfg.AddProfile(new UserProfile());
        cfg.AddProfile(new PostProfile());
      });
   }
}

public class UserProfile : Profile
{
    protected override void Configure()
    {
         Mapper.CreateMap<User,UserViewModel>();
    }
}

Daha temiz/daha güçlü.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • CodingMadeEasy

    CodingMadeEa

    25 EYLÜL 2010
  • HTC

    HTC

    12 Ocak 2006
  • michaeljacksonVEVO

    michaeljacks

    2 EYLÜL 2009