Partager via


Add-Type

Ajoute une classe Microsoft .NET à une session PowerShell.

Syntaxe

FromSource (Par défaut)

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

L’applet de commande Add-Type vous permet de définir une classe Microsoft .NET Framework dans votre session PowerShell. Vous pouvez ensuite instancier des objets à l’aide de l’applet de commande New-Object et utiliser les objets comme vous le feriez pour n’importe quel objet .NET Framework. Si vous ajoutez une commande Add-Type à votre profil PowerShell, la classe est disponible dans toutes les sessions PowerShell.

Vous pouvez spécifier le type en spécifiant un assembly ou des fichiers de code source existants, ou vous pouvez spécifier le code source inline ou enregistré dans une variable. Vous ne pouvez même spécifier qu’une méthode et Add-Type définit et génère la classe. Sur Windows, vous pouvez utiliser cette fonctionnalité pour passer des appels d’appel de plateforme (P/Invoke) à des fonctions non managées dans PowerShell. Si vous spécifiez du code source, Add-Type compile le code source spécifié et génère un assembly en mémoire qui contient les nouveaux types .NET Framework.

Vous pouvez utiliser les paramètres de Add-Type pour spécifier un autre langage et compilateur, C# est la valeur par défaut, les options du compilateur, les dépendances d’assembly, l’espace de noms de classe, les noms du type et l’assembly résultant.

Exemples

Exemple 1 : Ajouter un type .NET à une session

Cet exemple ajoute la classe BasicTest à la session en spécifiant le code source stocké dans une variable. La classe BasicTest est utilisée pour ajouter des entiers, créer un objet et multiplier des entiers.

$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)

La variable $Source stocke le code source de la classe. Le type a une méthode statique appelée Add et une méthode non statique appelée Multiply.

L’applet de commande Add-Type ajoute la classe à la session. Étant donné qu’elle utilise le code source inline, la commande utilise le paramètre TypeDefinition pour spécifier le code dans la variable $Source.

La méthode statique Add de la classe BasicTest utilise les caractères deux-points (::) pour spécifier un membre statique de la classe. Les entiers sont ajoutés et la somme s’affiche.

L’applet de commande instancie une instance de la classe BasicTest . Il enregistre le nouvel objet dans la variable $BasicTestObject.

$BasicTestObject utilise la méthode Multiply. Les entiers sont multipliés et le produit s’affiche.

Exemple 2 : Examiner un type ajouté

Cet exemple utilise l’applet de commande Get-Member pour examiner les objets que les applets de commande Add-Type et New-Object créées dans Exemple 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()

L’applet de commande obtient le type et les membres de la classe BasicTest qui ajoutées à la session. La commande révèle qu’il s’agit d’un objet System.RuntimeType , dérivé de la classe System.Object.

Le paramètre Get-Memberstatic obtient les propriétés et méthodes statiques de la classe BasicTest. La sortie indique que la méthode Add est incluse.

L’applet de commande Get-Member obtient les membres de l’objet stocké dans la variable $BasicTestObject. a été créé à l’aide de l’applet de commande avec la classe BasicTest . La sortie indique que la valeur de la variable $BasicTestObject est une instance de la classe BasicTest et qu’elle inclut un membre appelé Multiply.

Exemple 3 : Ajouter des types à partir d’un assembly

Cet exemple montre comment ajouter les classes de l’assembly Accessibility.dll à la session active.

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

La variable $AccType stocke un objet créé avec l’applet de commande Add-Type. Add-Type utilise le paramètre AssemblyName pour spécifier le nom de l’assembly. Le caractère générique astérisque (*) vous permet d’obtenir l’assembly correct même si vous n’êtes pas sûr du nom ou de son orthographe. Le paramètre PassThru génère des objets qui représentent les classes ajoutées à la session.

Exemple 4 : Appeler des API Windows natives

Cet exemple montre comment appeler des API Windows natives dans PowerShell. Add-Type utilise le mécanisme d’appel de plateforme (P/Invoke) pour appeler une fonction dans User32.dll à partir de PowerShell. Cet exemple fonctionne uniquement sur les ordinateurs exécutant le système d’exploitation Windows.

$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)

La variable $Signature stocke la signature C# de la fonction ShowWindowAsync. Pour vous assurer que la méthode résultante est visible dans une session PowerShell, le mot clé public a été ajouté à la signature standard. Pour plus d’informations, consultez fonction ShowWindowAsync.

La variable stocke l’objet créé par le paramètre passThru . L’applet de commande Add-Type ajoute la fonction ShowWindowAsync à la session PowerShell en tant que méthode statique. La commande utilise le paramètre MemberDefinition pour spécifier la définition de méthode enregistrée dans la variable $Signature. La commande utilise les paramètres Name et Namespace pour spécifier un nom et un espace de noms pour la classe. Le paramètre PassThru génère un objet qui représente les types.

La nouvelle méthode statique ShowWindowAsync est utilisée dans les commandes pour réduire et restaurer la console PowerShell. La méthode prend deux paramètres : le handle de fenêtre et un entier qui spécifie la façon dont la fenêtre est affichée.

Pour réduire la console PowerShell, ShowWindowAsync utilise l’applet de commande Get-Process avec la variable automatique $PID pour obtenir le processus qui héberge la session PowerShell actuelle. Ensuite, il utilise la propriété MainWindowHandle du processus actuel et une valeur de 2, qui représente la valeur SW_MINIMIZE.

Pour restaurer la fenêtre, ShowWindowAsync utilise une valeur de 4 pour la position de la fenêtre, qui représente la valeur SW_RESTORE.

Pour optimiser la fenêtre, utilisez la valeur de 3 qui représente SW_MAXIMIZE.

Exemple 5 : Ajouter un type à partir d’un fichier Visual Basic

Cet exemple utilise l’applet de commande pour ajouter la classe VBFromFile définie dans le fichier à la session active. Le texte du fichier Hello.vb s’affiche dans la sortie de commande.

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 utilise le paramètre Path pour spécifier le fichier source, Hello.vbet ajoute le type défini dans le fichier. La fonction SayHello est appelée comme méthode statique de la classe VBFromFile.

Exemple 6 : Ajouter une classe avec JScript.NET

Cet exemple utilise JScript.NET pour créer une classe, FRectangle, dans votre session PowerShell.

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

Exemple 7 : Ajouter un compilateur F#

Cet exemple montre comment utiliser l’applet de commande Add-Type pour ajouter un compilateur de code F# à votre session PowerShell. Pour exécuter cet exemple dans PowerShell, vous devez disposer du FSharp.Compiler.CodeDom.dll installé avec la langue F#.

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

utilise le paramètre Path pour spécifier un assembly et obtenir les types dans l’assembly. New-Object crée une instance du fournisseur de code F# et enregistre le résultat dans la variable $Provider. La variable $FSharpCode enregistre le code F# qui définit la méthode Loop.

La $FSharpType variable stocke les résultats de l’applet Add-Type de commande qui enregistre les types publics définis dans $FSharpCode. Le paramètre TypeDefinition spécifie le code source qui définit les types. Le paramètre CodeDomProvider spécifie le compilateur de code source. Le paramètre passThru dirige pour renvoyer un objet Runtime qui représente les types. Les objets sont envoyés au pipeline à l’applet de commande Where-Object, qui retourne uniquement les types publics. L’applet Where-Object de commande est utilisée, car le fournisseur F# génère des types non publics pour prendre en charge le type public résultant.

La méthode loop est appelée comme méthode statique du type stocké dans la variable $FSharpType.

Paramètres

-AssemblyName

Spécifie le nom d’un assembly qui inclut les types. Add-Type accepte les types de l’assembly spécifié. Ce paramètre est requis lorsque vous créez des types en fonction d’un nom d’assembly.

Entrez le nom complet ou simple, également appelé nom partiel, d’un assembly. Les caractères génériques sont autorisés dans le nom de l’assembly. Si vous entrez un nom simple ou partiel, Add-Type le résout en nom complet, puis utilise le nom complet pour charger l’assembly.

L’utilisation des paramètres Path ou LiteralPath garantit que vous chargez l’assembly que vous souhaitez charger. Lorsque vous utilisez le paramètre AssemblyName, PowerShell demande à .NET de résoudre le nom de l’assembly à l’aide du processus de résolution d’assembly .NET standard. Étant donné que .NET recherche d’abord le dossier d’application, Add-Type peut charger un assembly à partir de $PSHOME au lieu de la version dans le dossier actif. Pour plus d’informations, consultez 'emplacement de l’assembly.

Si .NET ne parvient pas à résoudre le nom, PowerShell recherche l’assembly à l’emplacement actuel. Lorsque vous utilisez des caractères génériques dans le paramètre AssemblyName, le processus de résolution d’assembly .NET échoue à l’origine de l’apparence de PowerShell à l’emplacement actuel.

Propriétés du paramètre

Type:

String[]

Valeur par défaut:None
Prend en charge les caractères génériques:True
DontShow:False
Alias:UN

Jeux de paramètres

FromAssemblyName
Position:Named
Obligatoire:True
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-CodeDomProvider

Spécifie un générateur de code ou un compilateur. Add-Type utilise le compilateur spécifié pour compiler le code source. La valeur par défaut est le compilateur C#. Utilisez ce paramètre si vous utilisez une langue qui ne peut pas être spécifiée à l’aide du paramètre Language. Le CodeDomProvider que vous spécifiez doit être en mesure de générer des assemblys à partir du code source.

Propriétés du paramètre

Type:CodeDomProvider
Valeur par défaut:C# compiler
Prend en charge les caractères génériques:False
DontShow:False
Alias:Fournisseur

Jeux de paramètres

FromSource
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False
FromMember
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-CompilerParameters

Spécifie les options du compilateur de code source. Ces options sont envoyées au compilateur sans révision.

Ce paramètre vous permet de diriger le compilateur pour générer un fichier exécutable, incorporer des ressources ou définir des options de ligne de commande, telles que l’option /unsafe. Ce paramètre implémente la classe CompilerParameters , System.CodeDom.Compiler.CompilerParameters.

Vous ne pouvez pas utiliser les paramètres CompilerParameters et ReferencedAssemblies dans la même commande.

Propriétés du paramètre

Type:CompilerParameters
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False
Alias:CP

Jeux de paramètres

FromSource
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False
FromMember
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False
FromPath
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False
FromLiteralPath
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-IgnoreWarnings

Ignore les avertissements du compilateur. Utilisez ce paramètre pour empêcher Add-Type de gérer les avertissements du compilateur en tant qu’erreurs.

Propriétés du paramètre

Type:SwitchParameter
Valeur par défaut:False
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-Language

Spécifie la langue utilisée dans le code source. L’applet de commande Add-Type utilise la valeur de ce paramètre pour sélectionner la CodeDomProvider appropriée. CSharp est la valeur par défaut. Les valeurs acceptables pour ce paramètre sont les suivantes :

  • CSharp
  • CSharpVersion2
  • CSharpVersion3
  • JScript
  • VisualBasic

Propriétés du paramètre

Type:Language
Valeur par défaut:CSharp
Valeurs acceptées:CSharp, CSharpVersion2, CSharpVersion3, JScript, VisualBasic
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

FromSource
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False
FromMember
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-LiteralPath

Spécifie le chemin d’accès aux fichiers de code source ou aux fichiers DLL d’assembly qui contiennent les types. Contrairement à Path, la valeur du paramètre LiteralPath est utilisée exactement tel qu'elle est saisie. Aucun caractère n’est interprété en tant que caractère générique. Si le chemin d’accès inclut des caractères d’échappement, mettez-le entre des guillemets simples. Les guillemets simples indiquent à PowerShell de ne pas interpréter de caractères comme séquences d’échappement.

L’utilisation des paramètres Path ou LiteralPath garantit que vous chargez l’assembly que vous souhaitez charger.

Propriétés du paramètre

Type:

String[]

Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False
Alias:PSPath

Jeux de paramètres

FromLiteralPath
Position:Named
Obligatoire:True
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-MemberDefinition

Spécifie de nouvelles propriétés ou méthodes pour la classe. Add-Type génère le code de modèle requis pour prendre en charge les propriétés ou méthodes.

Sur Windows, vous pouvez utiliser cette fonctionnalité pour passer des appels d’appel de plateforme (P/Invoke) à des fonctions non managées dans PowerShell.

Propriétés du paramètre

Type:

String[]

Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

FromMember
Position:1
Obligatoire:True
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-Name

Spécifie le nom de la classe à créer. Ce paramètre est requis lors de la génération d’un type à partir d’une définition de membre.

Le nom de type et l’espace de noms doivent être uniques au sein d’une session. Vous ne pouvez pas décharger un type ou le modifier. Pour modifier le code d’un type, vous devez modifier le nom ou démarrer une nouvelle session PowerShell. Sinon, la commande échoue.

Propriétés du paramètre

Type:String
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

FromMember
Position:0
Obligatoire:True
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-Namespace

Par défaut, cette commande crée le type dans l’espace de noms Microsoft.PowerShell.Commands.AddType.AutoGeneratedTypes. Lorsque vous utilisez ce paramètre, le type est créé dans l’espace de noms spécifié. Si la valeur est une chaîne vide, le type est créé dans l’espace de noms global.

Propriétés du paramètre

Type:String
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False
Alias:NS

Jeux de paramètres

FromMember
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-OutputAssembly

Génère un fichier DLL pour l’assembly avec le nom spécifié à l’emplacement. Entrez un chemin d’accès et un nom de fichier facultatifs. Les caractères génériques sont autorisés. Par défaut, Add-Type génère l’assembly uniquement en mémoire. Si vous extrayez l’assembly dans un fichier, vous devez inclure le paramètre PassThru pour retourner le type à partir de l’assembly nouvellement créé.

Propriétés du paramètre

Type:String
Valeur par défaut:None
Prend en charge les caractères génériques:True
DontShow:False
Alias:OA

Jeux de paramètres

FromSource
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False
FromMember
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False
FromPath
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False
FromLiteralPath
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-OutputType

Spécifie le type de sortie de l’assembly de sortie. Par défaut, aucun type de sortie n’est spécifié. Ce paramètre est valide uniquement lorsqu’un assembly de sortie est spécifié dans la commande. Pour plus d’informations sur les valeurs, consultez 'énumération OutputAssemblyType.

Les valeurs acceptables pour ce paramètre sont les suivantes :

  • ConsoleApplication
  • Library
  • WindowsApplication

Propriétés du paramètre

Type:OutputAssemblyType
Valeur par défaut:None
Valeurs acceptées:ConsoleApplication, Library, WindowsApplication
Prend en charge les caractères génériques:False
DontShow:False
Alias:OT

Jeux de paramètres

FromSource
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False
FromMember
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False
FromPath
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False
FromLiteralPath
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-PassThru

Renvoie un objet System.Runtime qui représente les types ajoutés. Par défaut, cette applet de commande ne génère aucune sortie. Utilisez ce paramètre si vous avez utilisé OutputAssembly pour créer un fichier DLL et que vous souhaitez retourner le type à partir de l’assembly nouvellement créé.

Propriétés du paramètre

Type:SwitchParameter
Valeur par défaut:False
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-Path

Spécifie le chemin d’accès aux fichiers de code source ou aux fichiers DLL d’assembly qui contiennent les types.

Si vous envoyez des fichiers de code source, Add-Type compile le code dans les fichiers et crée un assembly en mémoire des types. L’extension de fichier spécifiée dans la valeur de Path détermine le compilateur qui Add-Type utilise.

Si vous envoyez un fichier d’assembly, Add-Type accepte les types de l’assembly. Pour spécifier un assembly en mémoire ou le global assembly cache, utilisez le paramètre AssemblyName.

Propriétés du paramètre

Type:

String[]

Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

FromPath
Position:0
Obligatoire:True
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-ReferencedAssemblies

Spécifie les assemblys sur lesquels dépend le type. Par défaut, Add-Type référence System.dll et System.Management.Automation.dll. Les assemblys que vous spécifiez à l’aide de ce paramètre sont référencés en plus des assemblys par défaut.

Vous ne pouvez pas utiliser les paramètres CompilerParameters et ReferencedAssemblies dans la même commande.

Propriétés du paramètre

Type:

String[]

Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False
Alias:RA

Jeux de paramètres

FromSource
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False
FromMember
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False
FromPath
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False
FromLiteralPath
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-TypeDefinition

Spécifie le code source qui contient les définitions de type. Entrez le code source dans une chaîne ou une chaîne ici, ou entrez une variable qui contient le code source. Pour plus d'informations sur les chaînes de caractères, voir about_Quoting_Rules.

Incluez une déclaration d’espace de noms dans votre définition de type. Si vous omettez la déclaration d’espace de noms, votre type peut avoir le même nom qu’un autre type ou le raccourci d’un autre type, ce qui entraîne un remplacement involontaire. Par exemple, si vous définissez un type appelé Exception, les scripts qui utilisent exception comme raccourci pour System.Exception échoue.

Propriétés du paramètre

Type:String
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

FromSource
Position:0
Obligatoire:True
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-UsingNamespace

Spécifie d’autres espaces de noms requis pour la classe. C’est beaucoup comme le mot clé C#, Using.

Par défaut, Add-Type fait référence à l’espace de noms System. Lorsque le paramètre MemberDefinition est utilisé, Add-Type fait également référence à l’espace de noms System.Runtime.InteropServices par défaut. Les espaces de noms que vous ajoutez à l’aide du paramètre UsingNamespace sont référencés en plus des espaces de noms par défaut.

Propriétés du paramètre

Type:

String[]

Valeur par défaut:System namespace
Prend en charge les caractères génériques:False
DontShow:False
Alias:Using

Jeux de paramètres

FromMember
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

CommonParameters

Cette applet de commande prend en charge les paramètres courants : -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction et -WarningVariable. Pour plus d’informations, consultez about_CommonParameters.

Entrées

None

Vous ne pouvez pas diriger les objets vers cette applet de commande.

Sorties

None

Par défaut, cette applet de commande ne retourne aucune sortie.

Type

Lorsque vous utilisez le paramètre PassThru, cette applet de commande retourne un objet System.Type représentant le nouveau type.

Notes

Les types que vous ajoutez existent uniquement dans la session active. Pour utiliser les types dans toutes les sessions, ajoutez-les à votre profil PowerShell. Pour plus d’informations sur le profil, consultez about_Profiles.

Les noms de type et les espaces de noms doivent être uniques au sein d’une session. Vous ne pouvez pas décharger un type ou le modifier. Si vous devez modifier le code d’un type, vous devez modifier le nom ou démarrer une nouvelle session PowerShell. Sinon, la commande échoue.

La classe CodeDomProvider pour certaines langues, telles que IronPython et J#, ne génère pas de sortie. Par conséquent, les types écrits dans ces langues ne peuvent pas être utilisés avec Add-Type.

Cette applet de commande est basée sur la classe Microsoft .NET Framework CodeDomProvider.