Почему прямой доступ к статике не работает, а непрямой работает? Обратите внимание, что загруженный файл действителен в обоих примерах.
Сбой при использовании Direct To Static
class OpPrj {
[string] $ProjectPath
static [string] $configFile = 'settings.json';
[OpPrj] static GetSettings(){
return [OpPrj](Get-Content [OpPrj]::configFile | Out-String|ConvertFrom-Json);
}
Работает, назначая локально
class OpPrj {
[string] $ProjectPath
static [string] $configFile = 'settings.json';
[OpPrj] static GetSettings(){
$file = [OpPrj]::configFile
Write-Host $file # outputs settings.json
return [OpPrj](Get-Content $file | Out-String | ConvertFrom-Json);
}
(Get-Content ([OpPrj]::configFile) | ...
Это способ, которым вам нужно ссылаться на статические свойства для любого типа (или перечисления!) при работе с привязкой параметров, то есть заключенными в круглые скобки. Я не понимаю, почему здесь так работает парсер, но это так. - person Maximilian Burszley   schedule 13.03.2019$this
вместо[OpPrj]::configFile
? - person Theo   schedule 13.03.2019$this
не существует для статических членов, потому что они существуют в типе, а не в объекте. - person Maximilian Burszley   schedule 13.03.2019