我试图添加元素到添加成员的Powershell变量。 我没有问题,添加具有NoteProperty静态属性,并与ScriptMethod方法,像:VBscript公共属性设置/在PowerShell中获取等效项
$variable = New-Object PSObject
$variable | Add-Member NoteProperty Key "Value"
$variable | Add-Member ScriptMethod DoSomething { // code }
现在我卡在此:
我想补充一点,有一个getter和一个属性setter并通过代码块完成一大堆事情。
VBScript的等价会是这样:
Class MyClass
Public Property Get Item(name)
// Code to return the value of Item "name"
End Property
Public Property Let Item(name,value)
// Code to set the value of Item "name" to value "value"
End Property
End Class
注意,代码段我需要写做的不仅仅是设置/获取更多的价值,他们比这更复杂(设置其他相关变量,访问外部数据等)。
我在PowerShell中找不到任何这种简单的东西,并最终添加了2个scriptmethods,GetItem和SetItem。
在PowerShell的PSObject成员中实现get/let函数的最佳方式是什么?
在此先感谢
您可以使用'Add-Member'来添加一个'ParametrizedProperty',但我找不到这样做的例子。文档在这方面有点缺乏。 – Joey 2010-11-15 14:44:29
是的,参数化属性似乎是我想要的,但它保留用于其他用途,因为我所做的每个测试都产生了相同的错误消息,指出添加成员无法添加ParameterizedProperty类型的成员。错误消息指出我应该选择另一个MemberTyper。 – Baramin 2010-11-15 15:40:06
参数化属性不适合最终用户使用 - 主要针对COM适配器。 – x0n 2010-11-17 00:55:17