Ci ho pensato mentre rispondevo a questa domanda .
Come evitare la necessità di qualificare completamente ogni singolo tipo in uno spazio dei nomi?
Scrivere è davvero molto noioso al System.Security.Cryptography.X509Certificates.X509Store
posto di X509Store
o al [System.Security.Cryptography.X509Certificates.StoreName]::My
posto di [StoreName]::My
.
In C # hai delle using
direttive ... che dire di Powershell?
EDIT 1 - Funziona con i tipi:
$ns = "System.Security.Cryptography.X509Certificates"
$store = New-Object "$ns.X509Store"(StoreName,StoreLocation)
New-Object accetta una stringa letterale come definizione del tipo, quindi può essere costruita a livello di codice.
EDIT 2 - Funziona con i membri dell'enumerazione usati come parametri:
$store = New-Object "$ns.X509Store"("My","LocalMachine")
Dove "My" è [System.Security.Cryptography.X509Certificates.StoreName]::My
e "LocalMachine" è [System.Security.Cryptography.X509Certificates.StoreLocation]::LocalMachine
.
I nomi letterali vengono automaticamente convertiti in membri di enumerazione, se inseriti dove è previsto un membro di enumerazione.