문제

커스텀 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
        }
    }
}

"표준"접근법은 무엇입니까? 속성 세터, 프로세스 레코드 또는 완전히 다른 것?

도움이 되었습니까?

해결책

가능하면 매개 변수를 지정하여 런타임으로 검증하는 것이 선호됩니다. 검증 속성 매개 변수 정의에서.

Windows PowerShell은 여러 가지 방법으로 CMDLET 매개 변수에 전달 된 인수를 검증 할 수 있습니다. Windows PowerShell은 인수의 캐릭터의 길이, 범위 및 패턴을 검증 할 수 있습니다. 사용 가능한 인수 수 (카운트)를 검증 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top