سؤال

أنا أكتب PowerShell Cmdlet مخصص ، وأود أن أعرف ما هي الطريقة الصحيحة للتحقق من صحة المعلمة.
اعتقدت أنه يمكن القيام بذلك إما في ملحق مجموعة الممتلكات أو أثناء تنفيذ CMDLET:

[Cmdlet(VerbsCommon.Add,"X")]
public class AddX : Cmdlet {

    private string _name;

    [Parameter(
        Mandatory=false,
        HelpMessage="The name of the X")]
    public string name {
        get {return _name;}
        set {
            // Should the parameter be validated in the set accessor?
            if (_name.Contains(" ")) { 
                // call ThrowTerminatingError
            }
            _name = value;
        }
    }

    protected override void ProcessRecord() {
        // or in the ProcessRecord method?
        if (_name.Contains(" ")) {
            // call ThrowTerminatingError
        }
    }
}

ما هو النهج "القياسي"؟ Setter Property ، ProcessRecord أو شيء مختلف تمامًا؟

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

المحلول

إذا كان ذلك ممكنًا ، فمن المفضل التحقق من صحة المعلمات من خلال وقت التشغيل عن طريق تحديد سمات التحقق من الصحة على تعريف المعلمة.

يمكن لـ Windows PowerShell التحقق من صحة الوسائط التي تم تمريرها إلى معلمات CMDLT بعدة طرق. يمكن لـ Windows PowerShell التحقق من صحة الطول والنطاق ونمط أحرف الوسيطة. يمكنه التحقق من صحة عدد الوسائط المتاحة (العدد).

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