البرمجة

تحديث AutoMapper: الانتقال من API الثابتة وكيفية الاستفادة من IMapper

عند الانتقال من واجهة برمجة التطبيق (API) الثابتة في AutoMapper، يتطلب الأمر تعديل بعض الجزيئيات في الشيفرة البرمجية الخاصة بك. يُعد هذا التحول جزءًا حيويًا من تحديث النظام، ورغم أنه قد يتسبب في بعض المشاكل في البداية، إلا أنه يفتح أفقًا أوسع للتكامل والتحكم الأفضل في الخرائط (Mappings) في التطبيقات.

سابقًا، كنت تستخدم الواجهة الثابتة باستخدام الطريقة Mapper.CreateMap()، ولكنها أصبحت قديمة ومهجورة. الخطوة الأولى للتحول هي استخدام MapperConfiguration وتخزينها بشكل ثابت عند بداية التطبيق. يمكنك فعل ذلك كالتالي:

csharp
// ===> Startup.cs public class Startup { public Startup(IHostingEnvironment env) { // ... var mapperConfig = new MapperConfiguration(cfg => { cfg.AddProfile(); cfg.AddProfile(); cfg.AddProfile(); }); IMapper mapper = mapperConfig.CreateMapper(); // يمكنك تخزين المتغير 'mapper' بشكل ثابت لاستخدامه في جميع أنحاء التطبيق } }

في هذا المثال، تم إنشاء MapperConfiguration وتكوينها مع الـ Profile الخاصة بك. ثم تم إنشاء IMapper باستخدام CreateMapper().

الآن، بدلاً من استخدام Mapper.CreateMap() في ملف AbcMappingProfile.cs، يمكنك استخدام CreateMap() مباشرة على الـ IMapper:

csharp
// ===> AbcMappingProfile.cs public class AbcMappingProfile : Profile { protected override void Configure() { CreateMap(); CreateMap(); // ... } }

الخطأ الذي يظهر بسبب الـ ‘obsolete’ يشير إلى أنه يجب الابتعاد عن استخدام الواجهة الثابتة. الآن، يمكنك استخدام CreateMap() بشكل مباشر دون الحاجة إلى Mapper.CreateMap().

باختصار، يتعين عليك إنشاء تكوين للـ AutoMapper في بداية التطبيق واستخدامه عبر IMapper لتعريف الخرائط بشكل دينامي وفعال.

المزيد من المعلومات

بالتأكيد، دعنا نستكمل استعراض التحول من واجهة برمجة التطبيق (API) الثابتة في AutoMapper إلى النهج الدينامي باستخدام MapperConfiguration و IMapper.

عندما تقوم بتحديث AutoMapper، يتوجب عليك أيضًا إجراء بعض التغييرات في كيفية استخدام IMapper لعمليات الخرائط. سأشرح كيفية استخدام IMapper في بعض السيناريوهات الشائعة.

1. خريطة الكائنات:

في حالة رغبتك في تنفيذ خريطة بين كائنين، يمكنك استخدام IMapper كما يلي:

csharp
// في أي مكان داخل التطبيق بعد إعداد التكوين var sourceObject = new AbcEditViewModel(); var destinationObject = mapper.Map(sourceObject);

2. تحديث الكائن الهدف:

إذا كنت بحاجة إلى تحديث كائن هدف بناءً على بيانات من كائن آخر، يمكنك استخدام Map كما يلي:

csharp
// تحديث الكائن الهدف باستخدام بيانات من الكائن الأصل mapper.Map(sourceObject, destinationObject);

3. الخيارات الإضافية:

يمكنك أيضًا استخدام العديد من الخيارات الإضافية أثناء تنفيذ عمليات الخرائط، مثل تخصيص المخططات (Profiles) وتجاوز السلوك الافتراضي للتحويل.

csharp
// تحديد خرائط مخصصة باستخدام ملف تكوين آخر mapper.ConfigurationProvider.AssertConfigurationIsValid(); // تحديد سلوك تحويل مخصص mapper.Map(sourceObject, destinationObject, opt => opt.AfterMap((src, dest) => dest.SomeProperty = "Custom Value"));

بهذه الطريقة، يمكنك استفادة الكثير من ميزات AutoMapper الجديدة والتحكم الكامل في عمليات الخرائط دون الاعتماد على واجهة برمجة التطبيق الثابتة. تذكر دائمًا تحديث ملفات التكوين والملفات الفرعية لتتناسب مع التغييرات وضمان استمرار عمل التطبيق بسلاسة.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر