我认为PSClass - Object Oriented Scripting in Powershell是在PowerShell制作中使用简单OOP表示法的一种非常有前途的方法。
原始PSClass.ps1构造的优点在于它可以在New-PSClass
调用中使用非常通信/自描述的脚本块。
它被构造为一个脚本,您必须先运行该脚本,然后才能在您自己的代码中使用任何OOP语法。
我的目标是将其转换为可由Import-Module
cmdlet导入的标准PoweShell模块(即PSClass.psm1)。
不幸的是,当PSClass.ps1的内容直接嵌入到PSClass.psm1子例程note
中时,constructor
,property
,method
对Export-ModuleMember
不可见。
即使我使用简单的PSClass.psm1定义,如:
. .\PSClass.ps1
Export-ModuleMember -Function @('New-PSClass')
note
无法导出子例程constructor
,property
,method
,Export-ModuleMember
。
有没有人提示,如何在New-PSClass
调用中使用保留的自描述脚本块制作PSClass.ps1脚本全功能模块?
答案 0 :(得分:0)
我个人将PSClass.ps1重命名为PSClass.psm1并将Export-ModuleMember
命令放入PSClass.psm1文件中。我认为在PSClass.psm1中点源PSClass.ps1没有任何价值。现在你有两个类来传递redist而不是一个。
查看此脚本后,我会将其添加到PSClass.psm1文件的末尾:
Export-ModuleMember -Function New-PSClass, constructor, note, property, method