Question Comment créer un type Enum dynamiquement ?

Plus d'informations
il y a 1 mois 1 semaine #30954 par Arnaud Petitjean
Oui ça demande à faire quelques tests...

Que veux tu dire exactement par "portée de la classe" ?

...chemin en dur dans la clause using

Oui, using est assez pénible pour ça. Malheureusement on cela ne peut en être autrement.

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 ou d'un conseil ?

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 1 mois 1 semaine #30955 par Laurent Dardenne
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

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 1 mois 1 semaine #30956 par Thomas PEREZ
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 : 
# Import d'une class dynamiquement.
$classModules = "using module $monChemin"
$scriptBlock = [ScriptBlock]::Create($classModules)
. $scriptBlock

 

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 1 mois 1 semaine #30957 par Laurent Dardenne
>>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 :
>> $test = [MyClass]@{MyEnum = 'Wsus'
>> }
>> '@ > c:\temp\main.ps1
C:\temp> .\main.ps1
C:\temp> [MyClass]
Type [MyClass] introuvable.
La classe existe :
C:\temp> $m= get-module Myclass
C:\temp> &$m { [MyClass] }
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...

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 1 mois 1 semaine - il y a 1 mois 1 semaine #30958 par Laurent Dardenne
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.

Tutoriels PowerShell
Dernière édition: il y a 1 mois 1 semaine par Laurent Dardenne.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 1 mois 1 semaine #30959 par Laurent Dardenne
Sinon en passant, sous PS v7 il existe cette possibilité :
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.134 secondes
Propulsé par Kunena