Freigeben über


Add-Type

Fügt einer PowerShell-Sitzung eine Microsoft .NET-Klasse hinzu.

Syntax

Add-Type
   [-CodeDomProvider <CodeDomProvider>]
   [-CompilerParameters <CompilerParameters>]
   [-TypeDefinition] <String>
   [-Language <Language>]
   [-ReferencedAssemblies <String[]>]
   [-OutputAssembly <String>]
   [-OutputType <OutputAssemblyType>]
   [-PassThru]
   [-IgnoreWarnings]
   [<CommonParameters>]
Add-Type
   [-CodeDomProvider <CodeDomProvider>]
   [-CompilerParameters <CompilerParameters>]
   [-Name] <String>
   [-MemberDefinition] <String[]>
   [-Namespace <String>]
   [-UsingNamespace <String[]>]
   [-Language <Language>]
   [-ReferencedAssemblies <String[]>]
   [-OutputAssembly <String>]
   [-OutputType <OutputAssemblyType>]
   [-PassThru]
   [-IgnoreWarnings]
   [<CommonParameters>]
Add-Type
   [-CompilerParameters <CompilerParameters>]
   [-Path] <String[]>
   [-ReferencedAssemblies <String[]>]
   [-OutputAssembly <String>]
   [-OutputType <OutputAssemblyType>]
   [-PassThru]
   [-IgnoreWarnings]
   [<CommonParameters>]
Add-Type
   [-CompilerParameters <CompilerParameters>]
   -LiteralPath <String[]>
   [-ReferencedAssemblies <String[]>]
   [-OutputAssembly <String>]
   [-OutputType <OutputAssemblyType>]
   [-PassThru]
   [-IgnoreWarnings]
   [<CommonParameters>]
Add-Type
   -AssemblyName <String[]>
   [-PassThru]
   [-IgnoreWarnings]
   [<CommonParameters>]

Beschreibung

Mit dem Add-Type Cmdlet können Sie eine Microsoft .NET Framework-Klasse in Ihrer PowerShell-Sitzung definieren. Anschließend können Sie Objekte mithilfe des New-Object Cmdlets instanziieren und die Objekte genauso wie jedes .NET Framework-Objekt verwenden. Wenn Sie Ihrem PowerShell-Profil einen Add-Type Befehl hinzufügen, ist die Klasse in allen PowerShell-Sitzungen verfügbar.

Sie können den Typ angeben, indem Sie eine vorhandene Assembly oder Quellcodedateien angeben, oder Sie können den Quellcode inline oder in einer Variablen gespeichert angeben. Sie können sogar nur eine Methode angeben und Add-Type die Klasse definieren und generieren. Unter Windows können Sie dieses Feature verwenden, um Aufrufe von Plattformaufrufen (P/Invoke) an nicht verwaltete Funktionen in PowerShell zu tätigen. Wenn Sie Quellcode angeben, Add-Type kompiliert sie den angegebenen Quellcode und generiert eine Speicherassembly, die die neuen .NET Framework-Typen enthält.

Sie können die Parameter Add-Type verwenden, um eine alternative Sprache und einen Compiler anzugeben, C# ist die Standardeinstellung, Compileroptionen, Assemblyabhängigkeiten, der Klassennamespace, die Namen des Typs und die resultierende Assembly.

Beispiele

Beispiel 1: Hinzufügen eines .NET-Typs zu einer Sitzung

In diesem Beispiel wird der Sitzung die BasicTest-Klasse hinzugefügt, indem Quellcode angegeben wird, der in einer Variablen gespeichert ist. Die BasicTest-Klasse wird verwendet, um ganze Zahlen hinzuzufügen, ein Objekt zu erstellen und ganze Zahlen zu multiplizieren.

$Source = @"
public class BasicTest
{
  public static int Add(int a, int b)
    {
        return (a + b);
    }
  public int Multiply(int a, int b)
    {
    return (a * b);
    }
}
"@

Add-Type -TypeDefinition $Source
[BasicTest]::Add(4, 3)
$BasicTestObject = New-Object BasicTest
$BasicTestObject.Multiply(5, 2)

Die $Source Variable speichert den Quellcode für die Klasse. Der Typ hat eine statische Methode aufgerufen Add und eine nicht statische Methode aufgerufen Multiply.

Das Add-Type Cmdlet fügt der Sitzung die Klasse hinzu. Da er Inlinequellcode verwendet, verwendet der Befehl den TypeDefinition-Parameter , um den Code in der $Source Variablen anzugeben.

Die Add statische Methode der BasicTest-Klasse verwendet die Doppelpunktzeichen (::) zum Angeben eines statischen Elements der Klasse. Die ganzen Zahlen werden hinzugefügt, und die Summe wird angezeigt.

Das New-Object Cmdlet instanziiert eine Instanz der BasicTest-Klasse . Das neue Objekt wird in der $BasicTestObject Variablen gespeichert.

$BasicTestObject verwendet die Multiply Methode. Die ganzen Zahlen werden multipliziert, und das Produkt wird angezeigt.

Beispiel 2: Untersuchen eines hinzugefügten Typs

In diesem Beispiel wird das Get-Member Cmdlet verwendet, um die Objekte zu untersuchen, die in Add-Type Beispiel 1 erstellt wurdenNew-Object.

[BasicTest] | Get-Member

TypeName: System.RuntimeType

Name                 MemberType Definition
----                 ---------- ----------
AsType               Method     type AsType()
Clone                Method     System.Object Clone(), System.Object ICloneable.Clone()
Equals               Method     bool Equals(System.Object obj), bool Equals(type o)
FindInterfaces       Method     type[] FindInterfaces(System.Reflection.TypeFilter filter...
...

[BasicTest] | Get-Member -Static

TypeName: BasicTest

Name            MemberType Definition
----            ---------- ----------
Add             Method     static int Add(int a, int b)
Equals          Method     static bool Equals(System.Object objA, System.Object objB)
new             Method     BasicTest new()
ReferenceEquals Method     static bool ReferenceEquals(System.Object objA, System.Object objB)

$BasicTestObject | Get-Member

TypeName: BasicTest

Name        MemberType Definition
----        ---------- ----------
Equals      Method     bool Equals(System.Object obj)
GetHashCode Method     int GetHashCode()
GetType     Method     type GetType()
Multiply    Method     int Multiply(int a, int b)
ToString    Method     string ToString()

Das Get-Member Cmdlet ruft den Typ und die Member der BasicTest-Klasse ab, Add-Type die der Sitzung hinzugefügt wurde. Der Get-Member Befehl zeigt an, dass es sich um ein System.RuntimeType-Objekt handelt, das von der System.Object-Klasse abgeleitet wird.

Der Get-Member Static-Parameter ruft die statischen Eigenschaften und Methoden der BasicTest-Klasse ab. Die Ausgabe zeigt, dass die Add Methode enthalten ist.

Das Get-Member Cmdlet ruft die Elemente des Objekts ab, das in der $BasicTestObject Variablen gespeichert ist. $BasicTestObject wurde mithilfe des New-Object Cmdlets mit der BasicTest-Klasse erstellt. Die Ausgabe zeigt an, dass der Wert der $BasicTestObject Variablen eine Instanz der BasicTest-Klasse ist und dass sie ein Element enthält, das aufgerufen wird Multiply.

Beispiel 3: Hinzufügen von Typen aus einer Assembly

In diesem Beispiel werden die Klassen aus der Accessibility.dll Assembly zur aktuellen Sitzung hinzugefügt.

$AccType = Add-Type -AssemblyName "accessib*" -PassThru

Die $AccType Variable speichert ein objekt, das mit dem Add-Type Cmdlet erstellt wurde. Add-Type verwendet den Parameter "AssemblyName ", um den Namen der Assembly anzugeben. Mit dem Sternchen (*) können Sie die richtige Assembly auch dann abrufen, wenn Sie sich nicht sicher sind, ob der Name oder die Schreibweise vorhanden ist. Der PassThru-Parameter generiert Objekte, die die Klassen darstellen, die der Sitzung hinzugefügt werden.

Beispiel 4: Aufrufen systemeigener Windows-APIs

In diesem Beispiel wird veranschaulicht, wie systemeigene Windows-APIs in PowerShell aufgerufen werden. Add-Type verwendet den Plattformaufrufmechanismus (P/Invoke), um eine Funktion User32.dll aus PowerShell aufzurufen. Dieses Beispiel funktioniert nur auf Computern, auf denen das Windows-Betriebssystem ausgeführt wird.

$Signature = @"
[DllImport("user32.dll")]public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);
"@

$addTypeSplat = @{
    MemberDefinition = $Signature
    Name = "Win32ShowWindowAsync"
    Namespace = 'Win32Functions'
    PassThru = $true
}
$ShowWindowAsync = Add-Type @addTypeSplat

# Minimize the PowerShell console

$ShowWindowAsync::ShowWindowAsync((Get-Process -Id $pid).MainWindowHandle, 2)

# Restore the PowerShell console

$ShowWindowAsync::ShowWindowAsync((Get-Process -Id $Pid).MainWindowHandle, 4)

Die $Signature Variable speichert die C#-Signatur der ShowWindowAsync Funktion. Um sicherzustellen, dass die resultierende Methode in einer PowerShell-Sitzung sichtbar ist, wurde das public Schlüsselwort der Standardsignatur hinzugefügt. Weitere Informationen finden Sie unter ShowWindowAsync-Funktion .

Die $ShowWindowAsync Variable speichert das vom Add-Type PassThru-Parameter erstellte Objekt. Das Add-Type Cmdlet fügt die ShowWindowAsync Funktion der PowerShell-Sitzung als statische Methode hinzu. Der Befehl verwendet den MemberDefinition-Parameter , um die in der $Signature Variablen gespeicherte Methodendefinition anzugeben. Der Befehl verwendet die Parameter Name und Namespace , um einen Namen und namespace für die Klasse anzugeben. Der PassThru-Parameter generiert ein Objekt, das die Typen darstellt.

Die neue ShowWindowAsync statische Methode wird in den Befehlen verwendet, um die PowerShell-Konsole zu minimieren und wiederherzustellen. Die Methode verwendet zwei Parameter: das Fensterhandle und eine ganze Zahl, die angibt, wie das Fenster angezeigt wird.

Um die PowerShell-Konsole zu minimieren, ShowWindowAsync verwendet das Get-Process Cmdlet mit der $PID automatischen Variablen, um den Prozess abzurufen, der die aktuelle PowerShell-Sitzung hosten soll. Anschließend wird die MainWindowHandle-Eigenschaft des aktuellen Prozesses und ein Wert verwendet, der 2den SW_MINIMIZE Wert darstellt.

Zum Wiederherstellen des Fensters ShowWindowAsync wird ein Wert 4 für die Fensterposition verwendet, der den SW_RESTORE Wert darstellt.

Verwenden Sie den Wert dieses 3 Fensters SW_MAXIMIZE, um das Fenster zu maximieren.

Beispiel 5: Hinzufügen eines Typs aus einer Visual Basic-Datei

In diesem Beispiel wird das Add-Type Cmdlet verwendet, um der aktuellen Sitzung die VBFromFile-Klasse hinzuzufügen, die in der Hello.vb Datei definiert ist. Der Text der Hello.vb Datei wird in der Befehlsausgabe angezeigt.

Add-Type -Path "C:\PS-Test\Hello.vb"
[VBFromFile]::SayHello(", World")

# From Hello.vb

Public Class VBFromFile
  Public Shared Function SayHello(sourceName As String) As String
    Dim myValue As String = "Hello"
    return myValue + sourceName
  End Function
End Class

Hello, World

Add-Type verwendet den Parameter "Path ", um die Quelldatei anzugeben, Hello.vbund fügt den in der Datei definierten Typ hinzu. Die SayHello Funktion wird als statische Methode der VBFromFile-Klasse aufgerufen.

Beispiel 6: Hinzufügen einer Klasse mit JScript.NET

In diesem Beispiel wird JScript.NET verwendet, um eine neue Klasse ( FRectangle) in Ihrer PowerShell-Sitzung zu erstellen.

Add-Type @'
 class FRectangle {
   var Length : double;
   var Height : double;
   function Perimeter() : double {
       return (Length + Height) * 2; }
   function Area() : double {
       return Length * Height;  } }
'@ -Language JScript

$rect = [FRectangle]::new()
$rect

Length Height
------ ------
     0      0

Beispiel 7: Hinzufügen eines F#-Compilers

In diesem Beispiel wird gezeigt, wie Sie mithilfe des Add-Type Cmdlets Ihrer PowerShell-Sitzung einen F#-Codecompiler hinzufügen. Um dieses Beispiel in PowerShell auszuführen, müssen Sie das FSharp.Compiler.CodeDom.dll Mit der F#-Sprache installiert haben.

Add-Type -Path "FSharp.Compiler.CodeDom.dll"
$Provider = New-Object Microsoft.FSharp.Compiler.CodeDom.FSharpCodeProvider
$FSharpCode = @"
let rec loop n =if n <= 0 then () else beginprint_endline (string_of_int n);loop (n-1)end
"@
$FSharpType = Add-Type -TypeDefinition $FSharpCode -CodeDomProvider $Provider -PassThru |
   Where-Object { $_.IsPublic }
$FSharpType::loop(4)

4
3
2
1

Add-Type verwendet den Path-Parameter , um eine Assembly anzugeben und die Typen in der Assembly ab. New-Object erstellt eine Instanz des F#-Codeanbieters und speichert das Ergebnis in der $Provider Variablen. Die $FSharpCode Variable speichert den F#-Code, der die Loop-Methode definiert.

Die $FSharpType Variable speichert die Ergebnisse des Add-Type Cmdlets, das die öffentlichen Typen speichert, die in $FSharpCode. Der TypeDefinition-Parameter gibt den Quellcode an, der die Typen definiert. Der CodeDomProvider-Parameter gibt den Quellcodecompiler an. Der PassThru-Parameter leitet Add-Type ein Runtime-Objekt zurück, das die Typen darstellt. Die Objekte werden an das Where-Object Cmdlet gesendet, das nur die öffentlichen Typen zurückgibt. Das Where-Object Cmdlet wird verwendet, da der F#-Anbieter nicht öffentliche Typen generiert, um den resultierenden öffentlichen Typ zu unterstützen.

Die Loop-Methode wird als statische Methode des Typs aufgerufen, der in der $FSharpType Variablen gespeichert ist.

Parameter

-AssemblyName

Gibt den Namen einer Assembly an, die die Typen enthält. Add-Type verwendet die Typen aus der angegebenen Assembly. Dieser Parameter ist erforderlich, wenn Sie Typen basierend auf einem Assemblynamen erstellen.

Geben Sie den vollständigen oder einfachen Namen ein, der auch als Teilname einer Assembly bezeichnet wird. Der Assemblyname darf Platzhalterzeichen enthalten. Wenn Sie einen einfachen oder teilweisen Namen eingeben, Add-Type wird er in den vollständigen Namen aufgelöst und dann der vollständige Name verwendet, um die Assembly zu laden.

Die Verwendung der Parameter Path oder LiteralPath garantiert, dass Sie die Assembly laden, die Sie laden möchten. Wenn Sie den AssemblyName-Parameter verwenden, fordert PowerShell .NET auf, den Assemblynamen mithilfe des standardmäßigen .NET-Assemblyauflösungsprozesses aufzulösen. Da .NET zuerst den Anwendungsordner durchsucht, Add-Type kann eine Assembly anstelle $PSHOME der Version im aktuellen Ordner geladen werden. Weitere Informationen finden Sie unter Assemblyspeicherort.

Wenn .NET den Namen nicht auflösen kann, sucht PowerShell an dem aktuellen Speicherort, um die Assembly zu finden. Wenn Sie Platzhalter im AssemblyName-Parameter verwenden, schlägt der .NET-Assemblyauflösungsprozess fehl, sodass PowerShell am aktuellen Speicherort angezeigt wird.

Typ:String[]
Aliase:AN
Position:Named
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:True

-CodeDomProvider

Gibt einen Code-Generator oder Compiler an. Add-Type verwendet den angegebenen Compiler, um den Quellcode zu kompilieren. Der Standardwert ist der C#-Compiler. Verwenden Sie diesen Parameter, wenn Sie eine Sprache verwenden, die nicht mithilfe des Language-Parameters angegeben werden kann. Der von Ihnen angegebene CodeDomProvider muss Assemblys aus Dem Quellcode generieren können.

Typ:CodeDomProvider
Aliase:Provider
Position:Named
Standardwert:C# compiler
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-CompilerParameters

Gibt die Optionen für den Quellcodecompiler an. Diese Optionen werden ohne Revision an den Compiler gesendet.

Mit diesem Parameter können Sie den Compiler leiten, um eine ausführbare Datei zu generieren, Ressourcen einzubetten oder Befehlszeilenoptionen festzulegen, z. B. die /unsafe Option. Dieser Parameter implementiert die CompilerParameters-Klasse System.CodeDom.Compiler.CompilerParameters.

Sie können die Parameter "CompilerParameters " und "ReferencedAssemblies " nicht im selben Befehl verwenden.

Typ:CompilerParameters
Aliase:CP
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-IgnoreWarnings

Ignoriert Compilerwarnungen. Verwenden Sie diesen Parameter, um zu verhindern, dass Add-Type Compilerwarnungen als Fehler behandelt werden.

Typ:SwitchParameter
Position:Named
Standardwert:False
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Language

Gibt die Sprache an, die im Quellcode verwendet wird. Das Add-Type Cmdlet verwendet den Wert dieses Parameters, um den entsprechenden CodeDomProvider auszuwählen. CSharp ist der Standardwert. Die zulässigen Werte für diesen Parameter sind wie folgt:

  • CSharp
  • CSharpVersion2
  • CSharpVersion3
  • JScript
  • VisualBasic
Typ:Language
Zulässige Werte:CSharp, CSharpVersion2, CSharpVersion3, JScript, VisualBasic
Position:Named
Standardwert:CSharp
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-LiteralPath

Gibt den Pfad zu Quellcodedateien oder Assembly-DLL-Dateien an, die die Typen enthalten. Im Gegensatz zu Path wird der Wert des LiteralPath-Parameters genau so verwendet, wie er eingegeben wird. Es werden keine Zeichen als Platzhalter interpretiert. Wenn der Pfad Escapezeichen enthält, müssen Sie ihn in einfache Anführungszeichen einschließen. Einfache Anführungszeichen weisen PowerShell an, keine Zeichen als Escapesequenzen zu interpretieren.

Die Verwendung der Parameter Path oder LiteralPath garantiert, dass Sie die Assembly laden, die Sie laden möchten.

Typ:String[]
Aliase:PSPath
Position:Named
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-MemberDefinition

Gibt neue Eigenschaften oder Methoden für die Klasse an. Add-Type generiert den Vorlagencode, der zur Unterstützung der Eigenschaften oder Methoden erforderlich ist.

Unter Windows können Sie dieses Feature verwenden, um Aufrufe von Plattformaufrufen (P/Invoke) an nicht verwaltete Funktionen in PowerShell zu tätigen.

Typ:String[]
Position:1
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Name

Gibt den Namen der zu erstellenden Klasse an. Dieser Parameter ist beim Generieren eines Typs aus einer Memberdefinition erforderlich.

Der Typname und der Namespace müssen innerhalb einer Sitzung eindeutig sein. Sie können einen Typ nicht entladen oder ändern. Um den Code für einen Typ zu ändern, müssen Sie den Namen ändern oder eine neue PowerShell-Sitzung starten. Andernfalls führt der Befehl zu einem Fehler.

Typ:String
Position:0
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Namespace

Gibt einen Namespace für den Typ an.

Wenn dieser Parameter nicht im Befehl enthalten ist, wird der Typ im Namespace "Microsoft.PowerShell.Commands.AddType.AutoGeneratedTypes" erstellt. Wenn der Parameter im Befehl mit einem leeren Zeichenfolgenwert oder einem Wert von $Nullenthalten ist, wird der Typ im globalen Namespace generiert.

Typ:String
Aliase:NS
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-OutputAssembly

Generiert eine DLL-Datei für die Assembly mit dem angegebenen Namen an dem Speicherort. Geben Sie einen optionalen Pfad und Dateinamen ein. Platzhalterzeichen sind zulässig. Generiert die Assembly standardmäßig Add-Type nur im Arbeitsspeicher.

Typ:String
Aliase:OA
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:True

-OutputType

Gibt den Ausgabetyp der Ausgabeassembly an. Standardmäßig wird kein Ausgabetyp angegeben. Dieser Parameter gilt nur, wenn eine Ausgabeassembly im Befehl angegeben wird. Weitere Informationen zu den Werten finden Sie unter OutputAssemblyType-Aufzählung.

Die zulässigen Werte für diesen Parameter sind wie folgt:

  • ConsoleApplication
  • Library
  • WindowsApplication
Typ:OutputAssemblyType
Aliase:OT
Zulässige Werte:ConsoleApplication, Library, WindowsApplication
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-PassThru

Gibt ein System.Runtime - Objekt, das die hinzugefügten Typen darstellt. Standardmäßig generiert dieses Cmdlet keine Ausgabe.

Typ:SwitchParameter
Position:Named
Standardwert:False
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Path

Gibt den Pfad zu Quellcodedateien oder Assembly-DLL-Dateien an, die die Typen enthalten.

Wenn Sie Quellcodedateien übermitteln, Add-Type kompiliert sie den Code in den Dateien und erstellt eine Speicherassembly der Typen. Die im Wert von Path angegebene Dateierweiterung bestimmt den compiler, Add-Type der verwendet wird.

Wenn Sie eine Assemblydatei übermitteln, Add-Type werden die Typen aus der Assembly abgerufen. Verwenden Sie den Parameter "AssemblyName ", um eine In-Memory-Assembly oder den globalen Assemblycache anzugeben.

Typ:String[]
Position:0
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-ReferencedAssemblies

Gibt die Assemblys an, von denen der Typ abhängig ist. Standardmäßig werden Add-Type Verweise System.dll und System.Management.Automation.dll. Auf die Assemblys, die Sie mithilfe dieses Parameters angeben, wird zusätzlich zu den Standardassemblys verwiesen.

Sie können die Parameter "CompilerParameters " und "ReferencedAssemblies " nicht im selben Befehl verwenden.

Typ:String[]
Aliase:RA
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-TypeDefinition

Gibt den Quellcode an, der die Typdefinitionen enthält. Geben Sie den Quellcode in einer Zeichenfolge oder einer here-Zeichenfolge ein, oder geben Sie eine Variable ein, die den Quellcode enthält. Weitere Informationen zu den hier aufgeführten Zeichenfolgen finden Sie unter about_Quoting_Rules.

Schließen Sie eine Namespacedeklaration in die Typdefinition ein. Wenn Sie die Namespacedeklaration weglassen, kann der Typ denselben Namen wie ein anderer Typ oder die Verknüpfung für einen anderen Typ aufweisen, was zu einer unbeabsichtigten Überschreibung führen kann. Wenn Sie z. B. einen Typ namens "Exception" definieren, schlagen Skripts, die "Exception" als Verknüpfung für "System.Exception" verwenden, fehl.

Typ:String
Position:0
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-UsingNamespace

Gibt andere Namespaces an, die für die Klasse erforderlich sind. Dies ähnelt dem C#-Schlüsselwort . Using

Verweist standardmäßig Add-Type auf den Systemnamespace . Wenn der MemberDefinition-Parameter verwendet wird, Add-Type wird standardmäßig auch auf den System.Runtime.InteropServices-Namespace verwiesen. Auf die Namespaces, die Sie mithilfe des UsingNamespace-Parameters hinzufügen, wird zusätzlich zu den Standardnamespaces verwiesen.

Typ:String[]
Aliase:Using
Position:Named
Standardwert:System namespace
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

Eingaben

None

Sie können keine Objekte an dieses Cmdlet weiterleiten.

Ausgaben

None

Standardmäßig gibt dieses Cmdlet keine Ausgabe zurück.

Type

Wenn Sie den PassThru-Parameter verwenden, gibt dieses Cmdlet ein System.Type-Objekt zurück, das den neuen Typ darstellt.

Hinweise

Die Typen, die Sie hinzufügen, sind nur in der aktuellen Sitzung vorhanden. Um die Typen in allen Sitzungen zu verwenden, fügen Sie sie Ihrem PowerShell-Profil hinzu. Weitere Informationen zum Profil finden Sie unter about_Profiles.

Typnamen und Namespaces müssen innerhalb einer Sitzung eindeutig sein. Sie können einen Typ nicht entladen oder ändern. Wenn Sie den Code für einen Typ ändern müssen, müssen Sie den Namen ändern oder eine neue PowerShell-Sitzung starten. Andernfalls führt der Befehl zu einem Fehler.

Die CodeDomProvider-Klasse für einige Sprachen, z. B. IronPython und J#, generiert keine Ausgabe. Daher können typen, die in diesen Sprachen geschrieben wurden, nicht mit Add-Typeverwendet werden.

Dieses Cmdlet basiert auf der Microsoft .NET Framework CodeDomProvider-Klasse.