IRONSOFTWAREHOME
GELIŞTIRICI GÜNCELLEMELERI

Automapper C# (Geliştiriciler için Nasıl Çalışır)

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Jacob Mellor
Updated: 21 Nisan 2026

Automapper, karmaşık nesne modelleri arasında veri iletimini daha kolay ve bakımı daha uygun hale getirerek nesneden nesneye haritalamayı kolaylaştırmak için tasarlanmış C#'ta çok yönlü ve güçlü bir kütüphanedir. Bu makalede, Automapper'ın özellikleri nasıl verimli bir şekilde eşleyeceğini, karmaşık nesne modellerini nasıl düzleştireceğini ve kullanıcı etki alanı nesneleri ve veri aktarım nesneleri gibi çeşitli nesne türleriyle nasıl çalışacağını keşfedeceğiz.

Automapper'a Giriş

C# dilinde Automapper, veri varlıkları ile veri aktarım nesnelerine (DTO'lar) dönüşümünü içeren senaryolarda özellikle yararlı olan, farklı nesne türleri arasında dönüştürmeyi ve veri iletimini basitleştiren bir nesne-nesne haritalayıcıdır.

Automapper'ın Ana Özellikleri

  • Kodun Basitleştirilmesi: Automapper, özellikleri haritalayarak manuel kod ihtiyacını büyük ölçüde azaltır, böylece hataları önler ve zaman kazandırır.
  • Haritalama Konfigürasyonlarında Esneklik: Automapper, geniş bir yelpazede haritalama senaryolarına uyum sağlayarak detaylı yapılandırma özelleştirmesine olanak tanır.
  • Performans Verimliliği: Kütüphane, büyük ve karmaşık nesne modellerini önemli bir performans yükü olmadan işleme yeteneğine sahiptir.

Automapper ile Başlarken

Automapper kullanmak için, öncelikle yazılım paketlerinin yönetimini kolaylaştıran geliştirme ortamının bir bileşeni olan paket yöneticisi konsolu üzerinden yüklenmesi gerekir.

Paket Yöneticisi Konsolu Üzerinden Kurulum

Paket yöneticisi konsolunda basit bir komut yürüterek, projenize Automapper'ı kolayca yükleyebilirsiniz:

PM > Install-Package AutoMapper

Temel Haritalama Konfigürasyonu Ayarlama

Automapper kullanmanın temel aşaması, haritalama konfigürasyonunu tanımlamaktır. Bu, giriş nesnesi (kaynak) özelliklerinin çıkış nesnesine (hedefe) nasıl aktarılacağını belirtmekle ilgilidir.

var config = new MapperConfiguration(cfg => 
{
    cfg.CreateMap<SourceClass, DestinationClass>();
});
IMapper mapper = config.CreateMapper();
  • Yukarıdaki örnekte, SourceClass'dan DestinationClass'a özellikleri eşlemek için bir eşleme yapılandırması oluşturulur.
  • Ardından bu yapılandırmayı kullanarak IMapper'in bir örneği oluşturulur.

Automapper ile İleri Haritalama Teknikleri

Automapper'ın yetenekleri, basit özellikten özellik haritalamayarak çok daha ötesine uzanır. Daha karmaşık senaryoları da ustalıkla yönetebilir.

Karmaşık Nesne Modellerini Düzleştirme

Automapper'ın güçlü yönlerinden biri, karmaşık nesne modellerini düzleştirme yeteneğidir. Bu özellik, iç içe geçmiş nesnelerle uğraşırken özellikle faydalıdır, bu iç içe geçmiş özellikleri düz bir hedef sınıf yapısına eşlemeye olanak tanır.

Çok Yönlü Nesne Türü Yönetimi

Automapper, kullanıcı etki alanı nesneleri, DTO'lar ve hatta görünüm modelleri de dahil olmak üzere çeşitli nesne türleri arasında eşleştirme yaparken ustaca çalışabilir, farklı veri aktarım ihtiyaçları için çok yönlü bir çözüm sunar.

Pratik Kullanım Örnekleri

Automapper'ın faydalılığını daha iyi anlamak için bazı pratik örnekler inceleyelim.

Örnek 1: Basit Haritalama

Kullanıcı varlığından kullanıcı DTO'suna özellikleri eşlememiz gereken bir senaryoyu düşünün:

public class User
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Address { get; set; }
    public string City { get; set; }
}

public class UserDTO
{
    public string FullName { get; set; }
    public string Address { get; set; }
    public string City { get; set; }
}

// Mapping Configuration
var config = new MapperConfiguration(cfg =>
{
    cfg.CreateMap<User, UserDTO>()
       .ForMember(dest => dest.FullName, opt => opt.MapFrom(src => src.FirstName + " " + src.LastName));
});
IMapper mapper = config.CreateMapper();
User user = new User { FirstName = "John", LastName = "Doe", Address = "123 Street", City = "CityName" };
UserDTO userDto = mapper.Map<UserDTO>(user);
  • Bu örnek, User ve UserDTO arasında eşleme yapmayı gösterir, burada UserDTO'daki FullName, User'dan alınan FirstName ve LastName'nin birleştirilmesidir.

Örnek 2: Karmaşık Nesneler ile İleri Düzey Haritalama

Daha karmaşık bir senaryoda, iç içe geçmiş kullanıcı bilgilerine sahip bir sipariş nesnesini basitleştirilmiş bir sipariş DTO'suna eşleyelim:

public class Order
{
    public User OrderedBy { get; set; }
    // Other properties...
}

public class OrderDTO
{
    public string FullName { get; set; }
    // Other properties...
}

// Mapping Configuration
var config = new MapperConfiguration(cfg =>
{
    cfg.CreateMap<Order, OrderDTO>()
       .ForMember(dest => dest.FullName, opt => opt.MapFrom(src => src.OrderedBy.FirstName + " " + src.OrderedBy.LastName));
});
IMapper mapper = config.CreateMapper();
Order order = new Order { OrderedBy = new User { FirstName = "Jane", LastName = "Doe" } };
OrderDTO orderDto = mapper.Map<OrderDTO>(order);
  • Bu örnek, iç içe geçmiş OrderedBy detaylarını içeren bir Order nesnesinden düz bir OrderDTO'ya eşleme yapmayı gösterir ve kullanıcı adlarını tek bir FullName özelliğinde birleştirerek çıkartır.

Versiyon 9.0 ile, AutoMapper statik bir API'den (Mapper.Initialize) örnek tabanlı bir API'ye geçmiştir. Bu değişim, esnekliği artırır ve özellikle bağımlılık enjeksiyonunu kullanan modern uygulamalar için daha uygun hale gelir. Eğer 9.0'dan eski sürümlerle çalışıyorsanız, statik API yaklaşımı uygulanabilir. Ancak, daha yeni sürümler için, yukarıdaki örneklerde açıklandığı gibi, örnek tabanlı API'yi benimsemek önerilir.

Iron Software Suite Genel Bakış

Iron Software Suite .NET için, her biri belirli bir amaca hizmet eden bir dizi kütüphane ile güçlü bir pakettir. PDF oluşturmak, okumak ve düzenlemek, HTML'yi PDF'ye dönüştürmek ve görüntüleri birden fazla dilde metne işlemek gibi işlevleri kapsar. Bu süit, çeşitli geliştirme ihtiyaçlarına cevap verir, herhangi bir C# projesine çok yönlü bir ekleme yapar.

Iron Software Suite Ana Bileşenleri

  1. PDF Yönetimi için IronPDF: Bu bileşen, geliştiricilerin PDF'leri oluşturmasını, okumasını, düzenlemesini ve imzalamasını sağlar. Ayrıca, web tabanlı verilerden raporlar veya belgeler oluştururken özellikle kullanışlı olabilecek HTML'yi PDF'ye dönüştürme yeteneğini de sunar.

Automapper C# (Geliştiriciler İçin Nasıl Çalışır): Şekil 1 - IronPDF for .NET: C# PDF Kütüphanesi

  1. Excel Dosyası İşleme için IronXL: IronXL, Excel dosyalarıyla çalışma sırasında Office Interop'a ihtiyaç duymadan veri işleme ve analiz işleri yaparken işleri düzene sokar.

Automapper C# (Geliştiriciler İçin Nasıl Çalışır): Şekil 2 - IronXL for .NET: C# Excel Kütüphanesi

  1. Metin Çıkartma için IronOCR: Görüntülerden metin çıkartmayı sağlar ve bu da onu uluslararası projeler için son derece çok yönlü hale getiren 125 dili destekler.

Automapper C# (Geliştiriciler İçin Nasıl Çalışır): Şekil 3 - IronOCR for .NET: C# OCR Kütüphanesi

  1. QR ve Barcode Desteği için IronBarcode: Envanter yönetimi, takibi ve diğer ilgili görevleri geliştiren, QR kodları ve barkodları okuma ve yazma işlevselliğine olanak tanıyan bir kütüphane.

Automapper C# (Geliştiriciler İçin Nasıl Çalışır): Şekil 4 - IronBarcode for .NET: C# Barcode Kütüphanesi

Automapper ile Tamamlayıcılık

Her ne kadar Automapper, C#'da farklı nesne modelleri arasındaki özellikleri eşlemede mükemmel olsa da, Iron Software'ın Kütüphaneleri çeşitli veri format ve türlerini işlemek için araçlar sunarak işlevselliği genişletir. Örneğin, bir kullanıcı domain nesnesini bir DTO'ya dönüştürdükten sonra, IronPDF kullanılarak PDF formatında kapsamlı bir rapor oluşturulabilir. Benzer şekilde, Automapper kullanılarak çıkarılan veya dönüştürülen veriler, Excel dosya işlemleri için IronXL kullanılarak daha fazla işlenebilir veya analiz edilebilir.

Sonuç

Automapper C# geliştiricileri için nesneler arasında harita yapma görevini kolaylaştıran değerli bir araçtır. Özellik haritalamada, karmaşık nesne modellerini yönetmede ve özelleştirilebilir haritalama yapılandırmaları sunarak yazılım geliştirme sürecinde etkin bir araç olarak esastır. Nesne modellerinin inceliklerini anlamak ve Automapper'ın belirli ihtiyaçlara göre nasıl yapılandırılabileceğini bilmek, herhangi bir projede potansiyelini en üst düzeye çıkarmak için önemlidir.

Iron Software'ın Iron Suite çeşitli lisans seçenekleri sunar ve farklı proje ihtiyaçlarını karşılamak için Iron Software'in ücretsiz deneme sürümü içerir. Lisansları Lite, Plus ve Professional olarak katmanlanmıştır, farklı takım boyutlarına hitap eder ve kapsamlı destek özellikleri sunar. Automapper ile bu paketi entegre etmek, C# projelerini büyük ölçüde geliştirebilir, veri işleme ve doküman manipülasyonu yetenekleri ekler.

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Teknoloji Direktörü

Jacob Mellor, Iron Software'de Baş Teknoloji Yöneticisidir ve C# PDF teknolojisinde öncü bir mühendisdir. Iron Software'ın ana kod tabanının ilk geliştiricisi olarak, CEO Cameron Rimington ile birlikte şirketin ürün mimarisini 50'den fazla kişilik bir şirkete dönüştürmüştür ve NASA, Tesla ve dünya genelindeki devlet kurumlarına hizmet etmektedir.

...
Daha Fazla Oku

İlgili Makaleler

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez