2012-07-02 3 views
4

CmdLets 및 일회용 필드에 대해 허용되는 패턴은 무엇입니까? 일회용 필드를 소유 유형Powershell CmdLet 및 일회용 필드/CA1001

일회용해야하지만 PowerShell을 Dispose 메서드를 호출하지 않는 한 .... 그것은 늘 정말 패턴을 구현하는 데 도움이 :

의 FxCop 규칙이다.

지금까지 Begin/EndProcessing 메서드를 사용하여 필드를 설정하고 지 웁니다.

PowerShell이 ​​Dispose 메서드를 제대로 호출하는지 여부에 대한 슬픔에 대한 문서는 찾을 수 없습니다.

답변

5

Cmdlet (또는 PSCmdlet)에서 파생 된 명령을 구현할 때 IDisposable을 구현하면 파이프 라인이 완료 될 때 PowerShell에서 명령을 처리합니다. 그것만큼이나 간단합니다. 이 모순 된 행동을 보십니까?

업데이트, 라 LetMeGoogleThatForYou :

이러한 이유로

"... 런타임이 모두를 호출 할 수 있도록, 종료자를 포함 을 전체는 IDisposable 패턴을 구현해야 개체 정리를 필요로하는 cmdlet을 처리가 끝나면 System.Management.Automation.Cmdlet.EndProcessing 및 Dispose 메서드 " 에서

: http://msdn.microsoft.com/en-us/library/windows/desktop/ms714463(v=vs.85).aspx

+0

아니, 그냥 물어 - 모든 문서시의 cmdlet에서는 IDisposable에 대한 참조를 찾을 수 없습니다. – TomTom

+0

정말요? 내가 "파이프 라인 idisposable"봤 거든 그것은 결과의 두 번째 링크에 나타났습니다. 내 질문을 링크로 업데이트하겠습니다. – x0n

+0

THanks. 저것을 놓쳐 버렸나 봐. – TomTom

관련 문제