1 دقیقه میانگین مدت زمان مطالعه است

گاهی مواقع نیاز دارید تا در زبان‌های برنامه نویسی بطور مثال سی‌شارپ یک مدل را به مدل دیگری تبدیل کنید. یکی از پلاگین‌هایی که این کار را راحت می‌کند AutoMapper است. فرض کنید بنا به دلایل مختلف امکان استفاده از این پلاگین را ندارید و می‌خواهید همان بصورت دستی این کار را انجام بدهید.
روش ساده نوشتن دستی این موارد بصورت زیر است:

public class CustomModel {
    public string AddressLine1 { get; set; }

    public DateTime? Dob { get; set; }

    public string EmailAddress { get; set; }

    public string FirstName { get; set; }

    public string LastName { get; set; }

    public string PostCode { get; set; }

    public string PrimaryPhoneNo { get; set; }

    public string Title { get; set; }
}
private CustomDto Convert(CustomModel modelInput){
    return new CustomModel{
        AddressLine1 = modelInput.AddressLine1,
        ...
        ...
    };
}

اگر تعداد مدل‌ها زیاد شود و یا مدل شما پروپرتی‌های زیادی داشته باشد کار بالا زمان‌بر می‌شود و همچنین امکان اشتباه زیاد می‌شود.
را‌حل جازگزین استفاده از افزونه MappingGenerator در Visual Studio است.

mappinggenerator
MappingGenerator code

اگر امکان استفاده از این افزونه را هم نداشتید راه دیگر استفاده از Regex برای مپ کردن است.
برای این کار کافی است فقط پروپرتی‌های مدل خود را در سایت زیر یا نرم‌افزارهایی که قابلیت Replace با Regex دارد قرار دهید.
سپس این خط را در قسمت Search وارد کنید:

regex101

public [A-Za-z\?]* ([A-Za-z0-9]*) .*

سپس در قسمت Replace خط زیر را وارد کنید:

$1 = modelInput.$1,

با این کار کدی شبیه به زیر ساخته می‌شود:

    AddressLine1 = modelInput.AddressLine6,

    Dob = modelInput.Dob,

    EmailAddress = modelInput.EmailAddress,

    FirstName = modelInput.FirstName,

    LastName = modelInput.LastName,

    PostCode = modelInput.PostCode,

    PrimaryPhoneNo = modelInput.PrimaryPhoneNo,

    Title = modelInput.Title,

regex101 replace

تگ ها: , ,

دسته بندی ها:

به روز شده در: