programing

V2에서 PowerShell V3 속성을 모의 실행하는 방법

javajsp 2023. 8. 27. 08:56

V2에서 PowerShell V3 속성을 모의 실행하는 방법

철저하게 문서화하는 것을 좋아하는 사람이기 때문에, 저는 그것을 발견하게 되어 기뻤습니다.SupportsWildcards속성, 특히 PowerShell V3에 추가되었습니다.라이브러리의 매개 변수를 해당 속성으로 적절히 장식했습니다.장기적으로는 문제가 없지만, 단기적으로는 여전히 다양한 이유로 V2를 사용하는 사람들이 많습니다(단일 환경에 있는 저를 포함).

하나의 특성 때문에 일부 기능이 PowerShell V2에서 더 이상 실행되지 않는 것은 어리석은 일입니다.그래서 저는 V2의 속성을 조롱하여 본질적으로 "no-op"으로 바꾸는 방법을 찾고 있습니다.

제가 보기에 솔루션에는 두 부분이 필요합니다.

  1. 기본적으로 비어 있는 사용자 지정 특성을 만듭니다.
  2. 이 기능은 V2에서 적용되지만 V3에서는 무시됩니다(따라서 실제 V3 특성이 제대로 작동하도록 허용).

커스텀 속성을 사용해본 적이 없어서 두 파트 모두에 대한 지침을 찾고 있습니다.

아마 당신은 이것을 시도할 수 있을 것입니다.

    Add-Type @"    
        public class CustomAttribute : System.Attribute
        {
           public bool SupportSomething { get; set; } 
        }
    "@

    function Do-Something {
        param(
            [CustomAttribute(SupportSomething=$true)]
            $Command
        )
    }

    $parameters = Get-Command -Name Do-Something | Select-Object -ExpandProperty Parameters
    $parameters["Command"].Attributes

그런 다음 출력:

    SupportSomething : True
    TypeId           : CustomAttribute

먼저 C#에서 속성을 정의합니다. 이 속성은 PowerShell에서도 사용할 수 있습니다.매개 변수에 속성을 추가합니다.그런 다음 속성 목록을 가져옵니다.자세한 속성 예는 여기를 참조하십시오.

언급URL : https://stackoverflow.com/questions/15162062/how-to-mock-powershell-v3-attributes-in-v2