PowerShell - Сократите имена пространства имен, таким образом, это легче к типам доступа

Существует ли метод сокращения ссылок пространства имен PowerShell?

Ввод [RootNameSpace1.NameSpace2.Namepsace3+SomeEnum]::SomeValue является налоговым и не очень хороший пользователь expierence. Я понимаю, что можно сослаться System уровень возражает без пространства имен, таким образом что [Type]::GetType(... будет работать. Разве существует ли некоторая декларация, которую я мог создать или управлять, чтобы я мог использовать для сокращения длинных пространств имен?

6
задан Adam Driscoll 26 May 2010 в 16:45
поделиться

2 ответа

Любые методы, принимающие Enums, будут принимать строки, но это только для Enums и где нет двусмысленности (что означает, что нет других перегрузок с подписями, соответствующими строкам таким образом.)

Если вы используете powershell v2.0, вы можете (ab) использовать ускорители типов. Я писал об этом раньше, и Джоэл Беннет обернул мою технику в удобный сценарий:

http://poshcode.org/1869

-Oisin

6
ответ дан 9 December 2019 в 22:30
поделиться

Длинные типы могут быть присвоены переменным, а затем использоваться через эти переменные:

# enum values
$rvk = [Microsoft.Win32.RegistryValueKind]
$rvk::Binary
$rvk::DWord

# static members
$con = [System.Console]
$con::CursorLeft
$con::WriteLine('Hello there')

# just to be sure, look at types
.{
    $rvk::Binary
    $con::WriteLine
    $con::CursorLeft
} |
% { $_.GetType() }
5
ответ дан 9 December 2019 в 22:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: