如何将PSClass转换为模块?

时间:2013-11-24 16:22:53

标签: oop powershell

我认为PSClass - Object Oriented Scripting in Powershell是在PowerShell制作中使用简单OOP表示法的一种非常有前途的方法。

原始PSClass.ps1构造的优点在于它可以在New-PSClass调用中使用非常通信/自描述的脚本块。

它被构造为一个脚本,您必须先运行该脚本,然后才能在您自己的代码中使用任何OOP语法。

我的目标是将其转换为可由Import-Module cmdlet导入的标准PoweShell模块(即PSClass.psm1)。 不幸的是,当PSClass.ps1的内容直接嵌入到PSClass.psm1子例程note中时,constructorpropertymethodExport-ModuleMember不可见。 即使我使用简单的PSClass.psm1定义,如:

. .\PSClass.ps1

Export-ModuleMember -Function @('New-PSClass')

note无法导出子例程constructorpropertymethodExport-ModuleMember

有没有人提示,如何在New-PSClass调用中使用保留的自描述脚本块制作PSClass.ps1脚本全功能模块?

1 个答案:

答案 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