2014-10-29 6 views
8

Ein benutzerdefinierter Powershell-Skript oder Funktion kann zu Beginn seines Körpers mit einem Standardkommentar zu dokumentieren:Add-Dokumentation zu benutzerdefinierten Methoden (Script)

function wellDocumented { 
    <# 
     .SYNOPSIS 
     A well documented function 
     .DESCRIPTION 
     "Be verbose in documentation" - someone 
     .PARAMETER foo 
     should be 42 or 15, but not more 
    #> 
    param([int]$foo) 
    <# ... #> 
} 

Get-Help wellDocumented kehren einige netten Informationen dann. Aber wie kann ich benutzerdefinierte ScriptMethod s in benutzerdefinierten Objekten dokumentieren? Folgendes funktioniert nicht:

$myClass | add-member -memType ScriptMethod -Name "Foo" -Value { 
    <# 
     .SYNOPSIS 
     Something - but brief 
     .DESCRIPTION 
     Something 
    #> 
    <# ... #> 
} 

Gibt es eine Standardmethode, um Ihre ScriptMethods zu dokumentieren?

+0

Was ist '$ myClass'? – Eris

+0

Ich folgte dem Ansatz der Klassen zu definieren und Instanzen von ihnen in http://powertoe.wordpress.com/2014/04/26/you-know-powershell-is-anobject-oriented-language-right/ – Sh4pe

+0

I würde es höchstwahrscheinlich nur als C# -Modul schreiben und eine XML-Hilfedatei verwenden. Keine Antwort, aber eine mögliche Alternative. – Eris

Antwort

1

Sie können Ihr Skript Methode als separate Funktion schreiben ersten (wie Sie mit wellDocumented tat), dann die Funktion als Skript passieren:

$myClass | add-member -memType ScriptMethod -Name "Foo" -Value ${function:wellDocumented} 

Sie noch nicht Get-Help $myClass.Foo nennen kann, aber man kann Anruf Get-Help wellDocumented.

Bei meinen Tests konnte ich keine Hilfe zu einer Methode bekommen.

+0

Aber dann müsste ein Benutzer meiner Klasse die Implementierung untersuchen, um herauszufinden, dass er/sie 'hole-documented' helfen muss, Hilfe zu finden - was umständlicher ist, als nur in die Implementierung zu schauen und die Dokumentation dort zu lesen. .. Danke für deine Antwort! – Sh4pe