Add-Type
Voegt een Microsoft .NET-klasse toe aan een PowerShell-sessie.
Syntax
FromSource (Standaard)
Add-Type
[-TypeDefinition] <String>
[-CodeDomProvider <CodeDomProvider>]
[-CompilerParameters <CompilerParameters>]
[-Language <Language>]
[-ReferencedAssemblies <String[]>]
[-OutputAssembly <String>]
[-OutputType <OutputAssemblyType>]
[-PassThru]
[-IgnoreWarnings]
[<CommonParameters>]
FromMember
Add-Type
[-Name] <String>
[-MemberDefinition] <String[]>
[-CodeDomProvider <CodeDomProvider>]
[-CompilerParameters <CompilerParameters>]
[-Namespace <String>]
[-UsingNamespace <String[]>]
[-Language <Language>]
[-ReferencedAssemblies <String[]>]
[-OutputAssembly <String>]
[-OutputType <OutputAssemblyType>]
[-PassThru]
[-IgnoreWarnings]
[<CommonParameters>]
FromPath
Add-Type
[-Path] <String[]>
[-CompilerParameters <CompilerParameters>]
[-ReferencedAssemblies <String[]>]
[-OutputAssembly <String>]
[-OutputType <OutputAssemblyType>]
[-PassThru]
[-IgnoreWarnings]
[<CommonParameters>]
FromLiteralPath
Add-Type
-LiteralPath <String[]>
[-CompilerParameters <CompilerParameters>]
[-ReferencedAssemblies <String[]>]
[-OutputAssembly <String>]
[-OutputType <OutputAssemblyType>]
[-PassThru]
[-IgnoreWarnings]
[<CommonParameters>]
FromAssemblyName
Add-Type
-AssemblyName <String[]>
[-PassThru]
[-IgnoreWarnings]
[<CommonParameters>]
Description
Met de Add-Type cmdlet kunt u een Microsoft .NET Framework-klasse definiëren in uw PowerShell-sessie.
U kunt vervolgens objecten instantiëren met behulp van de cmdlet New-Object en de objecten op dezelfde manier gebruiken als elk .NET Framework-object. Als u een Add-Type opdracht aan uw PowerShell-profiel toevoegt, is de klasse beschikbaar in alle PowerShell-sessies.
U kunt het type opgeven door een bestaande assembly- of broncodebestanden op te geven, of u kunt de broncode inline opgeven of opslaan in een variabele. U kunt zelfs alleen een methode opgeven en Add-Type definieert en genereert de klasse. In Windows kunt u deze functie gebruiken om P/Invoke-aanroepen (Platform Invoke) te maken naar niet-beheerde functies in PowerShell. Als u broncode opgeeft, compileert Add-Type de opgegeven broncode en genereert u een assembly in het geheugen die de nieuwe .NET Framework-typen bevat.
U kunt de parameters van Add-Type gebruiken om een alternatieve taal en compiler op te geven. C# is de standaardinstelling, compileropties, assemblyafhankelijkheden, de klassenaamruimte, de namen van het type en de resulterende assembly.
Voorbeelden
Voorbeeld 1: Een .NET-type toevoegen aan een sessie
In dit voorbeeld wordt de klasse BasicTest toegevoegd aan de sessie door broncode op te geven die is opgeslagen in een variabele. De klasse BasicTest wordt gebruikt om gehele getallen toe te voegen, een object te maken en gehele getallen te vermenigvuldigen.
$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)
De variabele $Source slaat de broncode voor de klasse op. Het type heeft een statische methode met de naam Add en een niet-statische methode met de naam Multiply.
De cmdlet Add-Type voegt de klasse toe aan de sessie. Omdat deze inlinebroncode gebruikt, gebruikt de opdracht de parameter TypeDefinition om de code in de $Source variabele op te geven.
De Add statische methode van de klasse BasicTest gebruikt de dubbele punttekens (::) om een statisch lid van de klasse op te geven. De gehele getallen worden toegevoegd en de som wordt weergegeven.
Met de New-Object-cmdlet wordt een exemplaar van de klasse BasicTest geïnstitueert. Het nieuwe object wordt opgeslagen in de variabele $BasicTestObject.
$BasicTestObject gebruikt de methode Multiply. De gehele getallen worden vermenigvuldigd en het product wordt weergegeven.
Voorbeeld 2: Een toegevoegd type onderzoeken
In dit voorbeeld wordt de cmdlet Get-Member gebruikt om de objecten te onderzoeken die de Add-Type en New-Object cmdlets die zijn gemaakt in voorbeeld 1.
[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()
Met de Get-Member-cmdlet worden het type en de leden van de klasse BasicTest ophaalt die Add-Type toegevoegd aan de sessie. De opdracht Get-Member laat zien dat het een System.RuntimeType-object is, dat is afgeleid van de klasse System.Object.
De parameter Get-MemberStatic haalt de statische eigenschappen en methoden van de klasse BasicTest op. De uitvoer laat zien dat de methode Add is opgenomen.
Met de cmdlet Get-Member worden de leden van het object opgehaald dat is opgeslagen in de variabele $BasicTestObject.
$BasicTestObject is gemaakt met behulp van de New-Object-cmdlet met de klasse BasicTest. De uitvoer laat zien dat de waarde van de variabele $BasicTestObject een exemplaar is van de klasse BasicTest en dat deze een lid bevat met de naam Multiply.
Voorbeeld 3: Typen toevoegen vanuit een assembly
In dit voorbeeld worden de klassen uit de Accessibility.dll assembly toegevoegd aan de huidige sessie.
$AccType = Add-Type -AssemblyName "accessib*" -PassThru
Met de variabele $AccType wordt een object opgeslagen dat is gemaakt met de cmdlet Add-Type.
Add-Type gebruikt de parameter AssemblyName om de naam van de assembly op te geven. Met het jokerteken (*) van het sterretje (*) kunt u de juiste assembly ophalen, zelfs wanneer u niet zeker weet of de naam of de spelling ervan is. De parameter PassThru genereert objecten die de klassen vertegenwoordigen die aan de sessie worden toegevoegd.
Voorbeeld 4: Systeemeigen Windows-API's aanroepen
In dit voorbeeld ziet u hoe u systeemeigen Windows-API's aanroept in PowerShell.
Add-Type gebruikt het mechanisme Platform Invoke (P/Invoke) om een functie aan te roepen in User32.dll vanuit PowerShell. Dit voorbeeld werkt alleen op computers met het Windows-besturingssysteem.
$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)
In de $Signature variabele wordt de C#-handtekening van de functie ShowWindowAsync opgeslagen. Om ervoor te zorgen dat de resulterende methode zichtbaar is in een PowerShell-sessie, is het trefwoord public toegevoegd aan de standaardhandtekening. Zie functie ShowWindowAsync voor meer informatie.
De variabele $ShowWindowAsync slaat het object op dat is gemaakt door de parameter Add-TypePassThru.
De cmdlet Add-Type voegt de ShowWindowAsync-functie als statische methode toe aan de PowerShell-sessie. De opdracht gebruikt de parameter MemberDefinition om de methodedefinitie op te geven die is opgeslagen in de $Signature variabele. De opdracht maakt gebruik van de parameters name en naamruimte om een naam en naamruimte voor de klasse op te geven. De parameter PassThru genereert een object dat de typen vertegenwoordigt.
De nieuwe ShowWindowAsync statische methode wordt gebruikt in de opdrachten om de PowerShell-console te minimaliseren en te herstellen. De methode gebruikt twee parameters: de venstergreep en een geheel getal dat aangeeft hoe het venster wordt weergegeven.
Als u de PowerShell-console wilt minimaliseren, gebruikt ShowWindowAsync de cmdlet Get-Process met de automatische $PID variabele om het proces op te halen dat als host fungeert voor de huidige PowerShell-sessie. Vervolgens wordt de eigenschap MainWindowHandle van het huidige proces en een waarde van 2gebruikt, die de SW_MINIMIZE waarde vertegenwoordigt.
Als u het venster wilt herstellen, gebruikt ShowWindowAsync een waarde van 4 voor de vensterpositie, die de SW_RESTORE waarde vertegenwoordigt.
Als u het venster wilt maximaliseren, gebruikt u de waarde van 3 die SW_MAXIMIZEvertegenwoordigt.
Voorbeeld 5: Een type toevoegen uit een Visual Basic-bestand
In dit voorbeeld wordt de cmdlet Add-Type gebruikt om de VBFromFile--klasse toe te voegen die is gedefinieerd in het Hello.vb-bestand aan de huidige sessie. De tekst van het Hello.vb-bestand wordt weergegeven in de opdrachtuitvoer.
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 gebruikt de parameter Pad om het bronbestand op te geven, Hello.vben voegt het type toe dat in het bestand is gedefinieerd. De SayHello-functie wordt aangeroepen als een statische methode van de klasse VBFromFile.
Voorbeeld 6: Een klasse toevoegen met JScript.NET
In dit voorbeeld wordt JScript.NET gebruikt om een nieuwe klasse te maken, FRectangle-, in uw PowerShell-sessie.
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
Voorbeeld 7: Een F#-compiler toevoegen
In dit voorbeeld ziet u hoe u de cmdlet Add-Type gebruikt om een F#-codecompilator toe te voegen aan uw PowerShell-sessie. Als u dit voorbeeld wilt uitvoeren in PowerShell, moet u de FSharp.Compiler.CodeDom.dll hebben die is geïnstalleerd met de F#-taal.
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 gebruikt de parameter Path om een assembly op te geven en worden de typen in de assembly opgehaald.
New-Object maakt een exemplaar van de F#-codeprovider en slaat het resultaat op in de variabele $Provider. Met de $FSharpCode-variabele wordt de F#-code opgeslagen waarmee de methode Lus wordt gedefinieerd.
De variabele $FSharpType slaat de resultaten op van de Add-Type-cmdlet waarmee de openbare typen worden opgeslagen die zijn gedefinieerd in $FSharpCode. De parameter TypeDefinition geeft de broncode op waarmee de typen worden gedefinieerd. De parameter CodeDomProvider geeft de broncodecompilatie op. Met de parameter PassThru wordt Add-Type om een Runtime--object te retourneren dat de typen vertegenwoordigt.
De objecten worden naar de pijplijn verzonden naar de Where-Object cmdlet, die alleen de openbare typen retourneert. De Where-Object cmdlet wordt gebruikt omdat de F#-provider niet-openbare typen genereert ter ondersteuning van het resulterende openbare type.
De lusmethode wordt aangeroepen als een statische methode van het type dat is opgeslagen in de variabele $FSharpType.
Parameters
-AssemblyName
Hiermee geeft u de naam van een assembly die de typen bevat.
Add-Type neemt de typen van de opgegeven assembly. Deze parameter is vereist wanneer u typen maakt op basis van een assemblynaam.
Voer de volledige of eenvoudige naam in, ook wel de gedeeltelijke naam genoemd, van een assembly. Jokertekens zijn toegestaan in de assemblynaam. Als u een eenvoudige of gedeeltelijke naam invoert, wordt deze door Add-Type omgezet in de volledige naam en wordt vervolgens de volledige naam gebruikt om de assembly te laden.
Het gebruik van de parameters Path of LiteralPath garandeert dat u de assembly laadt die u wilt laden. Wanneer u de parameter AssemblyName gebruikt, vraagt PowerShell .NET om de assemblynaam om te zetten met behulp van het standaard .NET assembly-resolutieproces. Omdat .NET eerst in de toepassingsmap zoekt, kan Add-Type een assembly laden vanuit $PSHOME in plaats van de versie in de huidige map. Zie Assembly-locatievoor meer informatie.
Als .NET de naam niet kan worden omgezet, zoekt PowerShell op de huidige locatie naar de assembly. Wanneer u jokertekens gebruikt in de parameter AssemblyName, mislukt het .NET assembly-oplossingsproces waardoor PowerShell op de huidige locatie kan zoeken.
Parametereigenschappen
| Type: | String[] |
| Default value: | None |
| Ondersteunt jokertekens: | True |
| DontShow: | False |
| Aliassen: | EEN |
Parametersets
FromAssemblyName
| Position: | Named |
| Verplicht: | True |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-CodeDomProvider
Hiermee geeft u een codegenerator of compiler op.
Add-Type de opgegeven compiler gebruikt om de broncode te compileren. De standaardwaarde is de C#-compiler. Gebruik deze parameter als u een taal gebruikt die niet kan worden opgegeven met behulp van de parameter Language. De CodeDomProvider die u opgeeft, moeten assembly's kunnen genereren op basis van broncode.
Parametereigenschappen
| Type: | CodeDomProvider |
| Default value: | C# compiler |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
| Aliassen: | Aanbieder |
Parametersets
FromSource
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
FromMember
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-CompilerParameters
Hiermee geeft u de opties voor de broncode compiler. Deze opties worden zonder revisie naar de compiler verzonden.
Met deze parameter kunt u de compiler omsturen om een uitvoerbaar bestand te genereren, resources in te sluiten of opdrachtregelopties in te stellen, zoals de optie /unsafe. Met deze parameter wordt de klasse CompilerParameters, System.CodeDom.Compiler.CompilerParametersgeïmplementeerd.
U kunt de CompilerParameters en ReferencedAssemblies niet gebruiken parameters in dezelfde opdracht.
Parametereigenschappen
| Type: | CompilerParameters |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
| Aliassen: | CP |
Parametersets
FromSource
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
FromMember
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
FromPath
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
FromLiteralPath
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-IgnoreWarnings
Hiermee worden compilerwaarschuwingen genegeerd. Gebruik deze parameter om te voorkomen dat Add-Type compilerwaarschuwingen als fouten verwerkt.
Parametereigenschappen
| Type: | SwitchParameter |
| Default value: | False |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
(All)
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-Language
Hiermee geeft u de taal op die wordt gebruikt in de broncode. De Add-Type-cmdlet gebruikt de waarde van deze parameter om de juiste CodeDomProvider-te selecteren. CSharp is de standaardwaarde. De acceptabele waarden voor deze parameter zijn als volgt:
CSharpCSharpVersion2CSharpVersion3JScriptVisualBasic
Parametereigenschappen
| Type: | Language |
| Default value: | CSharp |
| Geaccepteerde waarden: | CSharp, CSharpVersion2, CSharpVersion3, JScript, VisualBasic |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
FromSource
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
FromMember
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-LiteralPath
Hiermee geeft u het pad naar broncodebestanden of ASSEMBLY DLL-bestanden die de typen bevatten. In tegenstelling tot pad, wordt de waarde van de parameter LiteralPath exact gebruikt zoals deze is getypt. Er worden geen tekens geïnterpreteerd als jokertekens. Als het pad escape-tekens bevat, zet het dan tussen enkele aanhalingstekens. Enkele aanhalingstekens zorgen ervoor dat PowerShell geen tekens als escapesequenties interpreteert.
Het gebruik van de parameters Path of LiteralPath garandeert dat u de assembly laadt die u wilt laden.
Parametereigenschappen
| Type: | String[] |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
| Aliassen: | PSPath |
Parametersets
FromLiteralPath
| Position: | Named |
| Verplicht: | True |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-MemberDefinition
Hiermee geeft u nieuwe eigenschappen of methoden voor de klasse.
Add-Type de sjablooncode genereert die nodig is om de eigenschappen of methoden te ondersteunen.
In Windows kunt u deze functie gebruiken om P/Invoke-aanroepen (Platform Invoke) te maken naar niet-beheerde functies in PowerShell.
Parametereigenschappen
| Type: | String[] |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
FromMember
| Position: | 1 |
| Verplicht: | True |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-Name
Hiermee geeft u de naam van de klasse die moet worden gemaakt. Deze parameter is vereist bij het genereren van een type van een liddefinitie.
De typenaam en naamruimte moeten uniek zijn binnen een sessie. U kunt een type niet verwijderen of wijzigen. Als u de code voor een type wilt wijzigen, moet u de naam wijzigen of een nieuwe PowerShell-sessie starten. Anders mislukt de opdracht.
Parametereigenschappen
| Type: | String |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
FromMember
| Position: | 0 |
| Verplicht: | True |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-Namespace
Met deze opdracht wordt standaard het type gemaakt in de Microsoft.PowerShell.Commands.AddType.AutoGeneratedTypes naamruimte. Wanneer u deze parameter gebruikt, wordt het type gemaakt in de opgegeven naamruimte. Als de waarde een lege tekenreeks is, wordt het type gemaakt in de globale naamruimte.
Parametereigenschappen
| Type: | String |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
| Aliassen: | NS |
Parametersets
FromMember
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-OutputAssembly
Genereert een DLL-bestand voor de assembly met de opgegeven naam op de locatie. Voer een optioneel pad en bestandsnaam in. Jokertekens zijn toegestaan. Standaard genereert Add-Type de assembly alleen in het geheugen. Als u de assembly uitvoert naar een bestand, moet u de parameter PassThru opnemen om het type van de zojuist gemaakte assembly te retourneren.
Parametereigenschappen
| Type: | String |
| Default value: | None |
| Ondersteunt jokertekens: | True |
| DontShow: | False |
| Aliassen: | OA |
Parametersets
FromSource
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
FromMember
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
FromPath
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
FromLiteralPath
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-OutputType
Hiermee geeft u het uitvoertype van de uitvoerassembly. Standaard is er geen uitvoertype opgegeven. Deze parameter is alleen geldig wanneer een uitvoerassembly is opgegeven in de opdracht. Zie OutputAssemblyType Opsommingvoor meer informatie over de waarden.
De acceptabele waarden voor deze parameter zijn als volgt:
ConsoleApplicationLibraryWindowsApplication
Parametereigenschappen
| Type: | OutputAssemblyType |
| Default value: | None |
| Geaccepteerde waarden: | ConsoleApplication, Library, WindowsApplication |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
| Aliassen: | OT |
Parametersets
FromSource
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
FromMember
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
FromPath
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
FromLiteralPath
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-PassThru
Hiermee wordt een System.Runtime--object geretourneerd dat de typen vertegenwoordigt die zijn toegevoegd. Deze cmdlet genereert standaard geen uitvoer. Gebruik deze parameter als u OutputAssembly hebt gebruikt om een DLL-bestand te maken en u het type wilt retourneren van de zojuist gemaakte assembly.
Parametereigenschappen
| Type: | SwitchParameter |
| Default value: | False |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
(All)
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-Path
Hiermee geeft u het pad naar broncodebestanden of ASSEMBLY DLL-bestanden die de typen bevatten.
Als u broncodebestanden verzendt, Add-Type de code in de bestanden compileert en een in-memory assembly van de typen maakt. De bestandsextensie die is opgegeven in de waarde van Pad bepaalt de compiler die Add-Type gebruikt.
Als u een assemblybestand verzendt, neemt Add-Type de typen uit de assembly. Als u een assembly in het geheugen of de globale assemblycache wilt opgeven, gebruikt u de parameter AssemblyName.
Parametereigenschappen
| Type: | String[] |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
FromPath
| Position: | 0 |
| Verplicht: | True |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-ReferencedAssemblies
Hiermee geeft u de assembly's waarop het type afhankelijk is. Standaard Add-Type verwijzingen naar System.dll en System.Management.Automation.dll. Naast de standaardassembly's die u opgeeft met deze parameter, worden ook naar de standaardassembly's verwezen.
U kunt de CompilerParameters en ReferencedAssemblies niet gebruiken parameters in dezelfde opdracht.
Parametereigenschappen
| Type: | String[] |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
| Aliassen: | RA |
Parametersets
FromSource
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
FromMember
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
FromPath
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
FromLiteralPath
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-TypeDefinition
Hiermee geeft u de broncode die de typedefinities bevat. Voer de broncode in een tekenreeks of hier-tekenreeks in of voer een variabele in die de broncode bevat. Voor meer informatie over here-strings, zie about_Quoting_Rules.
Neem een naamruimtedeclaratie op in uw typedefinitie. Als u de declaratie van de naamruimte weglaat, heeft uw type mogelijk dezelfde naam als een ander type of de snelkoppeling voor een ander type, waardoor een onbedoelde overschrijfwijze ontstaat. Als u bijvoorbeeld een type definieert met de naam Uitzondering, mislukken scripts die gebruikmaken van Uitzondering als snelkoppeling voor System.Exception-.
Parametereigenschappen
| Type: | String |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
FromSource
| Position: | 0 |
| Verplicht: | True |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-UsingNamespace
Hiermee geeft u andere naamruimten op die vereist zijn voor de klasse. Dit is vergelijkbaar met het C#-trefwoord, Using.
Standaard verwijst Add-Type naar de System-naamruimte. Wanneer de parameter MemberDefinition wordt gebruikt, verwijst Add-Type standaard ook naar de System.Runtime.InteropServices naamruimte. Naast de standaardnaamruimten die u toevoegt met behulp van de parameter UsingNamespace, worden ook naar de standaardnaamruimten verwezen.
Parametereigenschappen
| Type: | String[] |
| Default value: | System namespace |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
| Aliassen: | Gebruiken |
Parametersets
FromMember
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
CommonParameters
Deze cmdlet ondersteunt de algemene parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction en -WarningVariable. Zie about_CommonParametersvoor meer informatie.
Invoerwaarden
None
U kunt geen objecten doorsluisen naar deze cmdlet.
Uitvoerwaarden
None
Deze cmdlet retourneert standaard geen uitvoer.
Type
Wanneer u de parameter PassThru gebruikt, retourneert deze cmdlet een System.Type-object dat het nieuwe type vertegenwoordigt.
Notities
De typen die u toevoegt, bestaan alleen in de huidige sessie. Als u de typen in alle sessies wilt gebruiken, voegt u deze toe aan uw PowerShell-profiel. Zie about_Profilesvoor meer informatie over het profiel.
Typenamen en naamruimten moeten uniek zijn binnen een sessie. U kunt een type niet verwijderen of wijzigen. Als u de code voor een type wilt wijzigen, moet u de naam wijzigen of een nieuwe PowerShell-sessie starten. Anders mislukt de opdracht.
De CodeDomProvider klasse voor sommige talen, zoals IronPython en J#, genereert geen uitvoer. Als gevolg hiervan kunnen typen die in deze talen zijn geschreven niet worden gebruikt met Add-Type.
Deze cmdlet is gebaseerd op de Microsoft .NET Framework CodeDomProvider Class.