【发布时间】:2017-08-23 20:20:18
【问题描述】:
我在这里做错了什么 - 还是 PowerShell v5 不支持单独的类文件和继承?
foo.ps1:
class foo
{
[STRING] $test = 'Hello World';
[STRING] PrintTest()
{
return $this.test;
}
}
bar.ps1:
Import-Module "$PSScriptRoot\foo.ps1"
class bar : foo
{ }
控制台
PS C:\Script> Import-Module ./bar.ps1;
PS C:\Script> $myBar = New-Object bar;
PS C:\Script> $myBar.PrintTest();
Method invocation failed because [bar] does not contain a method named 'PrintTest'.
如果将 foo 和 bar 类放在同一个文件中,它就可以正常工作。但是我正在构建的类相当大,我想将它们分开。
【问题讨论】:
-
你确定错误,你得到了什么?如果您从干净的 PowerShell 会话中执行此操作,我希望
ParseError在Import-Module ./bar.ps1上。 -
是的,它加载 bar.ps1 没有错误。甚至可以毫无问题地创建 bar 对象。
-
类不与模块一起导出。请参阅下面的答案。
标签: class powershell inheritance