Ich habe darüber nachgedacht, als ich diese Frage beantwortet habe .
Wie können Sie vermeiden, dass jeder einzelne Typ in einem Namespace vollständig qualifiziert werden muss?
Es ist wirklich sehr, sehr langweilig, System.Security.Cryptography.X509Certificates.X509Store
statt X509Store
oder [System.Security.Cryptography.X509Certificates.StoreName]::My
statt zu schreiben [StoreName]::My
.
In C # haben Sie using
Anweisungen ... was ist mit Powershell?
EDIT 1 - Dies funktioniert für Typen:
$ns = "System.Security.Cryptography.X509Certificates"
$store = New-Object "$ns.X509Store"(StoreName,StoreLocation)
New-Object verwendet ein String-Literal als Typdefinition, sodass es programmgesteuert erstellt werden kann.
EDIT 2 - Dies funktioniert für Aufzählungselemente, die als Parameter verwendet werden:
$store = New-Object "$ns.X509Store"("My","LocalMachine")
Wo "Mein" ist [System.Security.Cryptography.X509Certificates.StoreName]::My
und "LocalMachine" ist [System.Security.Cryptography.X509Certificates.StoreLocation]::LocalMachine
.
Literalnamen werden automatisch in Aufzählungselemente konvertiert, wenn sie dort platziert werden, wo ein Aufzählungsmitglied erwartet wird.