سؤال

هل من الممكن كتابة طريقة التمديد في PowerShell؟أو تثبيت طريقة جديدة فوق نوع موجود مثل [string] مباشرة في وقت التشغيل؟

هل كانت مفيدة؟

المحلول

لا أعرف طريقة لتصحيح نوع ما باستخدام طريقة الامتداد.ولكن من الممكن بالتأكيد تصحيح كائن عبر cmdlet للعضو الإضافي

PS> $a = "foo"
PS> $a = add-member -in $a -memberType ScriptMethod -name Bar -value { $this + "bar" } -passthru
PS> $a.Foo()
foobar

يحرر اشرح بناء جملة PowerShell القابل للقراءة بشكل كامل وكامل :)

أنا أحب برنامج PowerShell ولكنه في الواقع يأتي بصيغة غامضة من وقت لآخر.

  • "-في":هذا اختصار لـ inputObject ويقول بشكل أساسي إضافة عضو إلى هذا
  • "-نوع العضو":هناك العديد من أنواع القيم المختلفة التي يمكنك إضافتها إلى كائن وقت التشغيل بما في ذلك الأساليب، وخصائص الملاحظة، وطريقة التعليمات البرمجية، وما إلى ذلك ...راجع "get-help add- member -full" للحصول على القائمة الكاملة
  • "-تمر من خلال":خذ الكائن الذي تمت إضافة عضو إليه للتو وادفعه إلى أسفل خط الأنابيب.بدون هذه العلامة، سيتم تعيين المهمة وتدفق خط أنابيب فارغ إليها $a.
  • نداء المهمة هو في الأساس ضمان ذلك $a الآن لديه الطريقة التي أضفتها

نصائح أخرى

إذا كان لديك أسلوب أو الخاصية التي تريد إضافتها إلى نوع معين، يمكنك إنشاء ملحق نوع مخصص عن طريق نظام نوع التكيف بوويرشيل ل.

وملحق النوع المخصص هو ملف XML والتي تصف الملكية أو النصي طريقة إلى نوع ومن ثم تحميله في الدورة بوويرشيل عبر الأمر cmdlet تحديث-TypeData.

وهناك مثال كبير من هذا يمكن العثور على في بوويرشيل فريق المدونة - أكره الإضافية الأعضاء؟ (نوع النظام بوويرشيل في التكيف للإنقاذ)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top