PowerShell에서 확장 메서드를 작성할 수 있습니까? 또는 런타임시 [string]과 같은 기존 유형 위에 새로운 메소드를 추가 할 수 있습니까?PowerShell, 확장 메서드 및 원숭이 패치
답변
확장 메서드가있는 형식을 패치하는 방법을 모르겠습니다. 그러나
PS> $a = "foo"
PS> $a = add-member -in $a -memberType ScriptMethod -name Bar -value { $this + "bar" } -passthru
PS> $a.Foo()
foobar
편집 내가 PowerShell을 사랑하지만 정말 난해한 구문을 마련 않는 완전히 완전히 읽을 수 PowerShell을 구문 :
설명 추가 회원 cmdlet을 통해 개체를 패치 확실히 가능 때때로.
- "-in"이 inputObject의 약자이며, 본질적으로이
- "-MemberType"에 구성원을 추가 말한다 : 당신이 방법, 노트 속성을 포함한 런타임 객체에 추가 할 수있는 값의 여러 가지 종류가 있습니다 , code method 등 ... 전체 목록은 "get-help add-member -full"을 참조하십시오.
- "-passthru": 멤버가 추가 된 객체를 가져 와서 파이프 라인 아래로 밀어 넣으십시오. 이 플래그가 없으면 배정은
$a
에 파이프 라인을 지정하고 할당합니다. - 할당 호출은 기본적으로
$a
지금 당신은 당신이 특정 유형에 추가 할 메서드 또는 속성이있는 경우, 당신은 PowerShell에서의 적응 유형을 통해 사용자 정의 형의 확장을 만들 수 있습니다
을 추가하는 방법을 가지고 있음을 보장한다 체계.
사용자 지정 유형 확장은 속성 또는 스크립트 메서드를 유형에 대해 설명하고 Update-TypeData cmdlet을 통해 PowerShell 세션에로드하는 XML 파일입니다.
이의 좋은 예는 약간의 구문에 정교한 수 있 었는가 PowerShell Team Blog - Hate Add-Member? (PowerShell's Adaptive Type System to the Rescue)
예, 이것은 원래 포스터가 찾고있는 답변입니다. – JasonMArcher
나는이 방법에 비틀 거렸다. 확실하지 않다. PowerShell과 XML에서 최대한 많은 것을 유지하고 싶습니다. 흠. 내가 할 많은 "개조"가 있다면 나는이 방법을 사용할 것이라고 생각한다. – BuddyJoe
- 1. 장고 및 원숭이 패치 문제
- 2. C# 원숭이 패치 - 가능합니까?
- 3. 질문에 (원숭이) 패치 (원숭이)로 패치했는지, 아니면 질문하지 않았습니까?
- 4. 파이썬에서 모듈을 원숭이 패치 __init__하는 방법?
- 5. 확장 메서드 및 인터페이스
- 6. Ruby의 기본 클래스를 "원숭이 패치"하는 더 좋은 방법이 있습니까?
- 7. express/connect 데이터로 원숭이 패치 요청 obj하는 방법
- 8. "주요"프레임 워크에서 원숭이 패치/공개 클래스를 사용합니까?
- 9. 원숭이 패치 플렉스 프레임 워크가 RSL로로드 될 때?
- 10. Rails 2.3 + Rake : 레이크 작업에 사용되는 클래스의 원숭이 패치 방법
- 11. .NET 4는 원숭이 패치 기능으로 인해 단위 테스트/조롱을 개선합니다.
- 12. .NET : ForEach() 확장 메서드 및 사전
- 13. C# : 암시 적 연산자 및 확장 메서드
- 14. CakePHP 컨트롤러 확장 및 메서드 재정의
- 15. PHP 젠드 엔진 확장 및 정적 메서드
- 16. suhosin 패치 또는 확장 및 zend 최적화 도구
- 17. ReaderWriterLockSlim 확장 메서드 성능
- 18. Enum의 IEnumerable 확장 메서드
- 19. ValueProvider.GetValue 확장 메서드
- 20. gridview eval의 확장 메서드
- 21. 정적 확장 메서드
- 22. Container.DataItem의 확장 메서드 출력?
- 23. Linq에 확장 메서드
- 24. LINQ 확장 메서드 재정의
- 25. 조인 확장 메서드 구문
- 26. 모델 인스턴스 확장 메서드
- 27. 확장 메서드 비동기 만들기
- 28. 모노로 확장 메서드 사용
- 29. 확장 메서드 정보
- 30. 확장 메서드 결합
+1에서 찾을 수 있습니다. $ a = add-member는 약간 이상하게 보입니다. -in 및 -passthru 스위치는 무엇을합니까? – BuddyJoe
@Tyndall, 의견이 업데이트 됨 – JaredPar
감사합니다. JaredPar – BuddyJoe