2010-05-26 10 views
6

¿Hay algún método para acortar las referencias al espacio de nombres de PowerShell?PowerShell: acorta los nombres del espacio de nombres para que sea más fácil acceder a los tipos

Escribir [RootNameSpace1.NameSpace2.Namepsace3+SomeEnum]::SomeValue es agotador y no es una experiencia de usuario muy buena. Me doy cuenta de que puede hacer referencia a los objetos de nivel System sin un espacio de nombres tal que [Type]::GetType(... funcionará. ¿Existe algún manifiesto que pueda crear o ordenar que pueda usar para acortar espacios de nombres largos?

Respuesta

6

Cualquier método que aceptan enumeraciones aceptará cadenas, pero esto es para enumeraciones única y donde no hay ambigüedad (significa que no hay otras sobrecargas con una firma que coincida con las cadenas de esta manera.)

Si usa PowerShell v2.0, puede (ab) utilizar Aceleradores de tipo. Me escribió en su blog acerca de esto antes, y Joel Bennett envuelto mi técnica en una escritura a mano:

http://poshcode.org/1869

-Oisin

+0

Eso es exactamente lo que estaba buscando. Gracias –

5

tipos largos se pueden asignar a las variables y luego usar a través de esas variables:

# 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() } 
+0

que trabaja para una solución simple. Esperaba que hubiera una manera de lograrlo sin que nuestro usuario final tenga que crear estas variables o sin tener que crearlas internamente y luego exponer algún tipo de documentación. Gracias! –

Cuestiones relacionadas