تنفيذ سلسلة الأوامر
سلسلة الأوامر (CoC) وظيفة لملحقات الفئة. يمكنك استخدام سلسلة الأوامر لالتفاف الكود X++ حول الأساليب التي تم تعريفها في الفئة الأساسية. تسمح لك سلسلة الأوامر بتخصيص فئات قياسية بدون استخدام معالجات الأحداث. تتيح لك هذه الوظيفة إضافة منطق مخصص يتم تشغيله قبل و/أو بعد تشغيل الكود القياسي. يمكنك فقط توسيع منطق الأساليب العامة والمحمية. عند التفاف أسلوب، يمكنك أيضاً الوصول إلى الأساليب المحمية للفئة الأساسية، والأساليب العامة، والمتغيرات. من المهم فهم هذا المفهوم، لأنه لا يمكن تغيير الكود الأساسي في تطوير Dynamics 365 for Finance and Operations.
لاستخدام سلسلة الأوامر، تحتاج إلى إنشاء فئة جديدة تستخدم نفس الاسم كالفئة التي تقوم بتوسيعها مع إضافة _Extension إلى الاسم كلاحقة له. يحتاج إقرار الفئة أيضاً إلى استخدام الكلمة الأساسية النهائية للإشارة إلى أنه لا يمكن الحصول عليها فيما بعد.
وأخيراً، يجب استخدام سمة ExtensionOf عندما تقوم بإقرار الفئة. ثم يمكنك إعادة استخدام نفس إقرار الأسلوب من الفئة الأساسية في الفئة الممتدة. داخل الأسلوب الممتد، يمكنك إضافة الكود المخصص. أنت مطالب باستخدام الكلمة الأساسية التالية لإنشاء سلسة أوامر. سيقوم الأمر التالي باستدعاء الأسلوب التالي في سلسلة الأوامر. عندما لا توجد أساليب أخرى في السلسلة، يتم استدعاء الأسلوب الأصلي (بمعنى آخر، الممتد).
مثال
يوضح مثال الكود التالي كيف يجب إقرار الفئة لاستخدام سلسلة الأوامر. عند استدعاء أسلوب ExampleClass.doSomething()، سيقوم الكود أولاً بتشغيل كل الكود قبل الكلمة الأساسية التالية. ثم سيتم تشغيل الكود الأصلي في الأسلوب ExampleClass.doSomething(). وأخيراً، سيتم تشغيل الكود بعد الكلمة الأساسية التالية.
[ExtensionOf(classStr(ExampleClass))]
final class ExampleClass_Extension
{
str doSomething(int arg)
{
// Custom logic before standard code.
var s = next doSomething(arg);
// Custom logic after standard code.
return s;
}
}
لا يمكن التفاف بعض الأساليب باستخدام سلسلة الأوامر. إذا كان الأسلوب يستخدم سمة قابلة للربط تم تعيينها على خطأ أو [Hookable(false)]، أو سمة قابلة للالتفاف تم تعيينها على خطأ، أو [Wrappable(false)] فإنه لا يمكن التفاف الأسلوب.
لا يمكن التفاف الأساليب التي تستخدم الكلمة الأساسية النهائية في فئة الملحق. يتم أيضاً استبعاد الأساليب الخاصة من قابلية التوسعة.