Question Classe où le nom est stocké dans une variable

Plus d'informations
il y a 14 ans 3 mois #10645 par Jean bilal
Bonsoir,

J'aimerais appelé une classe où le nom est stocké dans une variable. Du genre \"[nomdeclass]\"

Pour se faire, je fais donc l'appel via :
[$nomdelaclass] (le nom étant stocké dans une variable)

Le problème est que, lorsque j'appel la classe, il me dit qu'il ne trouve pas la class, ce qui est normal car il prends comme nom \"$nomdeclasse\" au lieu de prendre la valeur stockée dans la variable.

Avez vous une idée sur comment faire pour qu'il appel ce qui est stocké dans la variable et non pas le nom de la variable ?

Cordialement

Message édité par: jbilal, à: 24/11/11 18:44<br><br>Message édité par: jbilal, à: 24/11/11 19:15

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

Plus d'informations
il y a 14 ans 3 mois #10655 par Laurent Dardenne
Le mieux est de créer des raccourcis de type (Type Accelerators en anglais) :
poshcode.org/1398

Tutoriels PowerShell

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

Plus d'informations
il y a 14 ans 3 mois #10681 par Jean bilal
Mais comment cela fonctionne t'il ? Je ne comprends pas trop le concept.

Le concept est de créée une classe qui en appelle une autre ? Du genre on appelle la classe [blahblah] celle ci nous renvoit vers la classe qu'on appelle ?

Et comment cela s'utilise t'il seulement pour un nom par exemple ?



merci pour votre aide

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

Plus d'informations
il y a 14 ans 3 mois #10684 par Laurent Dardenne
jbilal écrit:

Le concept est de créer une classe qui en appelle une autre ?

Non, c'est plus un \&quot;alias\&quot;.
jbilal écrit:

Du genre on appelle la classe [blahblah] celle ci nous renvoit vers la classe qu'on appelle ?

On créé des instances, des objets, pas des classes, PS ne sait pas le faire en natif.
Ensuite c'est le parseur qui se débrouille pour appeller la classe associée au raccourci. Un exemple 'ordonné' :
[code:1]
#liste des raccourcis de type
$PBShortCut=@{
PBExclude = [PoshBoard.PSClasses.PbExcludeAttribute];
ValidatePatternEx = [PoshBoard.PSClasses.ValidatePatternExAttribute];
PbElement = [PoshBoard.PSClasses.PbElement];
PbConstants = [Poshboard.PSClasses.PBConstants];
}
#création des types
$AcceleratorsType = [Type]::GetType(\&quot;System.Management.Automation.TypeAccelerators\&quot;«»)
# Add shortcut of types
Try {
$PBShortCut.GetEnumerator() |
Foreach {
Try {
if ( $DebugPreference -ne \&quot;SilentlyContinue\&quot;«»)
{ Write-debug \&quot;Add TypeAccelerators $($_.Key) =$($_.Value)\&quot; }
$AcceleratorsType::Add($_.Key,$_.Value)
} Catch [System.Management.Automation.MethodInvocationException]{
write-Error $_.Exception.Message
}
}
} Catch [System.Management.Automation.RuntimeException] {
write-Error $_.Exception.Message
}

#Suppression des types
function OnRemovePoshBoard {
Write-Debug (\&quot;Call : {0}\&quot; -F $MyInvocation.InvocationName)

#Remove shortcuts
$PBShortCut.GetEnumerator() |
Foreach {
Try {
if ( $DebugPreference -ne \&quot;SilentlyContinue\&quot;«»)
{ Write-debug \&quot;Remove TypeAccelerators $($_.Key)\&quot; }
[void]$AcceleratorsType::Remove($_.Key)
} Catch {
write-Error $_.Exception.Message
}
}
}#OnRemovePoshBoard

$MyInvocation.MyCommand.ScriptBlock.Module.OnRemove = { OnRemovePoshBoard }
[/code:1]
Ensuite dans le code on utilise [PBExclude] ou [PBElement], comme on le fait avec [int] ou [Hashtable].<br><br>Message édité par: Laurent Dardenne, à: 30/11/11 20:05

Tutoriels PowerShell

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

Temps de génération de la page : 0.082 secondes
Propulsé par Kunena