Nach MSDN:Declare erhalten Accessoren in Powershell-Cmdlets Parameter
„Parameter müssen auf die öffentliche nicht-statische Felder oder Eigenschaften deklariert werden Parameter sollten auf Eigenschaften deklariert werden Die Eigenschaft muss eine öffentliche gesetzt haben.. Accessor, und wenn das ValueFromPipeline oder ValueFromPipelineByPropertyName Schlüsselwort angegeben ist, muss die Eigenschaft einen öffentlichen Get Accessor haben. "
Warum muss ich Zugriffsmethoden in meinem Cmdlet ValueFromPipeline
Parameter deklarieren? Soweit ich weiß, muss PowerShell nur ihre Werte eingeben und nicht auslesen. Danke (übrigens bin ich nur neugierig auf dieses Verhalten :)).
Es scheint eine seltsame Anforderung. Ich kann nur davon ausgehen, dass es sich um ein Implementierungsartefakt (dh undichte Abstraktion) handelt: Durch die Verarbeitung von Validierungen und Typumwandlungen, die auf Parametereigenschaften angewendet werden, ist die Verarbeitung von Code nicht einfach. Auf der anderen Seite habe ich selten etwas anderes als eine automatische Eigenschaft mit öffentlichem Set und Get verwendet und kann mir keinen Umstand vorstellen, bei dem ich etwas anderes wollen würde. – Richard