AutoMapper C# (.NET): पूर्ण गाइड उदाहरण सहित

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

AutoMapper C# (.NET) का परिचय

आधुनिक C# (.NET) डेवलपमेंट में, एक ऑब्जेक्ट को दूसरे ऑब्जेक्ट में बदलने का काम अक्सर सामने आता है। यह एप्लिकेशन के विभिन्न लेयर्स के बीच डेटा ट्रांसफर करते समय (जैसे, डेटाबेस से API के लिए DTO में), ViewModel को Entity में मैप करते समय, या API के विभिन्न वर्जन के साथ काम करते समय आवश्यक हो सकता है। हर ऐसे रूपांतरण के लिए मैन्युअल रूप से कोड लिखना एक थकाऊ, त्रुटि-प्रवण और रखरखाव में मुश्किल काम है। यहीं पर AutoMapper मददगार साबित होता है।

AutoMapper .NET के लिए एक लोकप्रिय ओपन-सोर्स लाइब्रेरी है जो एक ऑब्जेक्ट के प्रॉपर्टी को दूसरे ऑब्जेक्ट से मैप (मिलान) करने की प्रक्रिया को स्वचालित करती है। यह 'कन्वेंशन ओवर कॉन्फ़िगरेशन' (convention over configuration) के सिद्धांत पर आधारित है। इसका मतलब है कि यदि स्रोत और लक्ष्य ऑब्जेक्ट में प्रॉपर्टी के नाम और प्रकार समान हैं (या कुछ नियमों का पालन करते हैं), तो AutoMapper बिना स्पष्ट नियम बताए मैपिंग कर सकता है। यदि नियम अलग हैं, तो आप इसके लचीले API का उपयोग करके उन्हें आसानी से कस्टमाइज़ कर सकते हैं।

यह लाइब्रेरी बॉयलरप्लेट कोड की मात्रा को काफी कम करती है, कोड को साफ बनाती है, मैन्युअल असाइनमेंट से जुड़ी त्रुटियों को कम करती है, और रीफैक्टरिंग को सरल बनाती है। AutoMapper का व्यापक रूप से ASP.NET Core, WPF, Xamarin और अन्य .NET एप्लिकेशन में उपयोग किया जाता है।

AutoMapper की स्थापना (Installation)

AutoMapper NuGet के माध्यम से वितरित किया जाता है, जो .NET के लिए आधिकारिक पैकेज मैनेजर है। इसे कई तरीकों से स्थापित किया जा सकता है:

1. पैकेज मैनेजर कंसोल (Package Manager Console) के माध्यम से

Install-Package AutoMapper

2. .NET CLI के माध्यम से

dotnet add package AutoMapper

3. Visual Studio इंटरफ़ेस के माध्यम से (Manage NuGet Packages)

प्रोजेक्ट खोलें -> प्रोजेक्ट पर राइट-क्लिक करें -> "Manage NuGet Packages" चुनें -> "AutoMapper" खोजें -> नवीनतम स्थिर संस्करण स्थापित करें।

ASP.NET Core के साथ काम करने के लिए, AutoMapper.Extensions.Microsoft.DependencyInjection पैकेज इंस्टॉल करने की भी सिफारिश की जाती है, जो DI कंटेनर के साथ एकीकरण को सरल बनाता है:

dotnet add package AutoMapper.Extensions.Microsoft.DependencyInjection

त्वरित शुरुआत: पहली मैपिंग

आइए एक सरल उदाहरण बनाते हैं। हमारे पास UserEntity क्लास (डेटाबेस से) और UserDto क्लास (क्लाइंट को भेजने के लिए) है।

using AutoMapper;

// 1. स्रोत और लक्ष्य क्लासेस
public class UserEntity
{
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Email { get; set; }
}

public class UserDto
{
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Email { get; set; }
}

// 2. कॉन्फ़िगरेशन और Mapper बनाना
var config = new MapperConfiguration(cfg =>
{
    cfg.CreateMap<UserEntity, UserDto>();
});

var mapper = config.CreateMapper();

// 3. उपयोग
var userEntity = new UserEntity
{
    Id = 1,
    FirstName = "राम",
    LastName = "शर्मा",
    Email = "ram@example.com"
};

var userDto = mapper.Map<UserDto>(userEntity);

Console.WriteLine(userDto.FirstName); // आउटपुट: राम

इस उदाहरण में, हमने UserEntity और UserDto के बीच एक मैप (Map) बनाया। चूंकि प्रॉपर्टी के नाम समान हैं, AutoMapper ने स्वचालित रूप से उनका मिलान कर दिया। Map<TDestination>(source) मेथड मैपिंग करता है और लक्ष्य प्रकार का एक नया ऑब्जेक्ट लौटाता है।

AutoMapper के मुख्य तरीके और कार्य

AutoMapper मैपिंग को कॉन्फ़िगर करने के लिए एक समृद्ध API प्रदान करता है। नीचे 10 प्रमुख तरीके और कार्य दिए गए हैं जिनका आप सबसे अधिक उपयोग करेंगे।

1. CreateMap<TSource, TDestination>()

क्या करता है: दो प्रकारों के बीच मैपिंग कॉन्फ़िगरेशन बनाता है। यह मैप घोषित करने की मुख्य विधि है।

पैरामीटर: दो generic पैरामीटर: TSource (स्रोत प्रकार) और TDestination (लक्ष्य प्रकार)।

अनुशंसाएँ