Question Comment créer un type Enum dynamiquement ?
- Arnaud Petitjean
- Auteur du sujet
- Hors Ligne
- Modérateur
il y a 2 ans 10 mois #30954
par Arnaud Petitjean
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Réponse de Arnaud Petitjean sur le sujet Comment créer un type Enum dynamiquement ?
Oui ça demande à faire quelques tests...
Que veux tu dire exactement par "portée de la classe" ?
Que veux tu dire exactement par "portée de la classe" ?
Oui, using est assez pénible pour ça. Malheureusement on cela ne peut en être autrement....chemin en dur dans la clause using
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 2 ans 10 mois #30955
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Comment créer un type Enum dynamiquement ?
Et pour l'usage de ta fonction New-Enum sous PS Core, il faut adapter le code C#.
Une piste : stackoverflow.com/questions/36937276/rep...assembly-in-net-core
Une piste : stackoverflow.com/questions/36937276/rep...assembly-in-net-core
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Thomas PEREZ
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 2
- Remerciements reçus 1
il y a 2 ans 10 mois #30956
par Thomas PEREZ
Réponse de Thomas PEREZ sur le sujet Comment créer un type Enum dynamiquement ?
Normalement, le using doit être en premier ligne d'un script.
Dans mon exemple, il se trouve n'importe où dans le code et n'est pas obligatoirement en dur.
Il peut très bien comporter une variable.
Exemple :
Dans mon exemple, il se trouve n'importe où dans le code et n'est pas obligatoirement en dur.
Il peut très bien comporter une variable.
Exemple :
# Import d'une class dynamiquement.
$classModules = "using module $monChemin"
$scriptBlock = [ScriptBlock]::Create($classModules)
. $scriptBlock
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 2 ans 10 mois #30957
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Comment créer un type Enum dynamiquement ?
>>Que veux tu dire exactement par "portée de la classe" ?
Une fois la classe créé via l'exécution du script on a ceci :La classe existe :Il faut créer dans le module une fonction (un wrapper) de création d'instance, enfin si besoin.
Comme on ne connait pas le contexte de ton utilisation, la solution peut variée.
Si c'est un traitement en une passe, pas de pb en l'état, si c'est un outil pour admin (console) faut ajouter des trucs
Pour la clause using je ne sais plus si elle s'appuie sur PSModulePath ou si elle nécessite tout le temps un chemin codé en dur...
Une fois la classe créé via l'exécution du script on a ceci :
>> $test = [MyClass]@{MyEnum = 'Wsus'
>> }
>> '@ > c:\temp\main.ps1
C:\temp> .\main.ps1
C:\temp> [MyClass]
Type [MyClass] introuvable.
C:\temp> $m= get-module Myclass
C:\temp> &$m { [MyClass] }
Comme on ne connait pas le contexte de ton utilisation, la solution peut variée.
Si c'est un traitement en une passe, pas de pb en l'état, si c'est un outil pour admin (console) faut ajouter des trucs
Pour la clause using je ne sais plus si elle s'appuie sur PSModulePath ou si elle nécessite tout le temps un chemin codé en dur...
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 2 ans 10 mois - il y a 2 ans 10 mois #30958
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Comment créer un type Enum dynamiquement ?
Thomas je n'avais pas vu ton message.
>>Il peut très bien comporter une variable.
Oui tout à fait.
Si tous les fichiers sont dans le même répertoire $PsScriptRoot peut suffire.
>>Il peut très bien comporter une variable.
Oui tout à fait.
Si tous les fichiers sont dans le même répertoire $PsScriptRoot peut suffire.
Tutoriels PowerShell
Dernière édition: il y a 2 ans 10 mois par Laurent Dardenne.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 2 ans 10 mois #30959
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Comment créer un type Enum dynamiquement ?
Sinon en passant, sous PS v7 il existe cette possibilité :
vexx32.github.io/2018/11/29/Dynamic-ValidateSet/
vexx32.github.io/2018/11/29/Dynamic-ValidateSet/
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.090 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les initiés
- Comment créer un type Enum dynamiquement ?