فئات تجميع ملحق الويب
فئات مجموعة ملحقات الويب
يوضح هذا الدليل كيف أن الفئات الأربعة لتجميع ملحقات الويب في Aspose.Words FOSS لـ .NET — TaskPaneCollection, WebExtensionBindingCollection, WebExtensionPropertyCollection, و WebExtensionReferenceCollection — تشترك في عقد تجميع واحد عبر الفئة المجردة BaseWebExtensionCollection الفئة الأساسية. لمعرفة ما تمثله ألواح المهام والربط وخصائص ملحق الويب فعليًا، راجع ملحقات الويب الدليل؛ تغطي هذه الصفحة فقط الحاوية API التي يشتركون فيها جميعًا.
BaseWebExtensionCollection: عقد واحد، أربع مجموعات
BaseWebExtensionCollection هي الفئة الأساسية لـ TaskPaneCollection، WebExtensionBindingCollection، WebExtensionPropertyCollection، وWebExtensionReferenceCollection. إنها تنفذ IEnumerable<T> وتعرّف كل عضو تُظهره هذه المجموعات الأربع الملموسة — لا أحد من الفئات الفرعية الأربع يعلن عن طرق أو خصائص إضافية خاصة به تتجاوز ما توفره الفئة الأساسية.
إضافة، إزالة، وعدّ العناصر
Add(item) يضيف العنصر المحدد إلى المجموعة. Clear() يزيل جميع العناصر. Remove(index) يزيل العنصر عند الفهرس المحدد — يأخذ index موضعياً، ليس مرجعاً للعنصر، لذا فإن إزالة عنصر معين يعني أولاً تحديد موقع فهرسه. Count يُبلغ عن عدد العناصر الحالية في المجموعة.
تعداد مجموعة
GetEnumerator() يُرجِع مُعدِّدًا يمكنه التكرار عبر المجموعة، لذا أي مجموعة مشتقة من BaseWebExtensionCollection تدعم حلقة foreach على عناصرها دون الحاجة إلى شفرة تكرار محددة النوع.
نصائح وأفضل الممارسات
- نظرًا لأن جميع المجموعات الأربع تشترك في نفس العقد الأساسي، فإن الشيفرة المكتوبة ضد أعضاء
BaseWebExtensionCollection’sAdd،Clear،Remove،Count، وGetEnumeratorتعمل بشكل موحد عبرTaskPaneCollection،WebExtensionBindingCollection،WebExtensionPropertyCollection، وWebExtensionReferenceCollection. Remove(index)يأخذ فهرسًا موضعيًا — إذا كان لديك العنصر فقط، فقم بتعداد المجموعة للعثور على فهرسه أولاً، أو تتبع الفهرس عند وقت الإدراج.- اقرأ
Countقبل التكرار، أوforeachعلى المجموعة مباشرةً باستخدامGetEnumerator()بدلاً من الفهرسة يدويًا، لأن العقد الأساسي لا يُظهر دالة جلب موضعية. - استدعِ
Clear()عندما تحتاج إلى إعادة تعيين مجموعة بدلاً من استدعاءRemoveبشكل متكرر داخل حلقة.
مشكلات شائعة
| المشكلة | السبب | إصلاح |
|---|---|---|
Remove لا يقبل العنصر نفسه | Remove(index) على المجموعات المستمدة من BaseWebExtensionCollection تأخذ فهرسًا موضعيًا، وليس مرجعًا | ابحث أولاً عن فهرس العنصر (مثلاً أثناء العد)، ثم استدعِ Remove(index) |
| التكرار على إحدى المجموعات الأربعة يبدو مكررًا بين الأنواع | كل مجموعة هي نوع ملموس منفصل، لكنها جميعًا تشترك في أعضاء BaseWebExtensionCollection | اكتب منطق التكرار أو الأدوات المشترك مرة واحدة ضد الأعضاء Add، Clear، Remove، Count، وGetEnumerator المشتركين بين الأربعة |
| غير متأكد من نوع المجموعة الملموسة الذي يحتاجه جزء من الكود | يتم كشف المجموعات الأربعة من خصائص مختلفة على WebExtension و Document | تحقق من ملحقات الويب دليل حول أي خاصية تُعيد أي نوع من المجموعات |
FAQ
لماذا تتصرف مجموعات الامتداد الويب الأربعة بنفس الطريقة؟
جميعها تورث من نفس الفئة الأساسية التجريدية، BaseWebExtensionCollection، التي تعرف Add، Clear، Remove، Count، وGetEnumerator — ولا أحد من الفئات الفرعية الأربعة يضيف أعضائه الخاصة.
كيف يمكنني إزالة عنصر معين من إحدى هذه المجموعات؟
استدعِ Remove(index) باستخدام الفهرس الموضعي للعنصر — حدد الفهرس عن طريق تعداد المجموعة أولاً إذا كان لديك مرجع العنصر فقط.
هل يمكنني التنقل عبر أي من هذه المجموعات الأربعة بنفس الطريقة؟
نعم — جميع الأربعة تنفّذ IEnumerable<T> عبر BaseWebExtensionCollection، لذا فإن GetEnumerator() / foreach يعمل بشكل متماثل بينها.
من أين أتعلم ما الذي يمثّله عنصر WebExtensionBinding أو TaskPane فعليًا؟
انظر الـ ملحقات الويب الدليل — تغطي هذه الصفحة سلوك حاوية المجموعة المشتركة فقط، وليس الكائنات المجال التي تحملها المجموعات.
API Reference ملخص
| فئة/طريقة | وصف |
|---|---|
BaseWebExtensionCollection | الفئة الأساسية المجردة المشتركة بين جميع أنواع مجموعات ملحقات الويب الأربعة |
BaseWebExtensionCollection.Add(item) | يضيف عنصرًا إلى المجموعة |
BaseWebExtensionCollection.Clear() | يزيل جميع العناصر من المجموعة |
BaseWebExtensionCollection.Remove(index) | يزيل العنصر في الفهرس المحدد |
BaseWebExtensionCollection.GetEnumerator() | ترجع عدّادًا للتنقل عبر المجموعة |
BaseWebExtensionCollection.Count | عدد العناصر في المجموعة |
TaskPaneCollection | قائمة BaseWebExtensionCollection من TaskPane عنصر |
WebExtensionBindingCollection | قائمة BaseWebExtensionCollection من WebExtensionBinding عنصر |
WebExtensionPropertyCollection | قائمة BaseWebExtensionCollection من WebExtensionProperty عنصر |
WebExtensionReferenceCollection | مُجَسَّد BaseWebExtensionCollection من WebExtensionReference عناصر |