Question Classe où le nom est stocké dans une variable
- Jean bilal
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 4
- Remerciements reçus 0
il y a 14 ans 3 mois #10645
par Jean bilal
Classe où le nom est stocké dans une variable a été créé 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
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.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 14 ans 3 mois #10655
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Classe où le nom est stocké dans une variable
Le mieux est de créer des raccourcis de type (Type Accelerators en anglais) :
poshcode.org/1398
poshcode.org/1398
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Jean bilal
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 4
- Remerciements reçus 0
il y a 14 ans 3 mois #10681
par Jean bilal
Réponse de Jean bilal sur le sujet Re:Classe où le nom est stocké dans une variable
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
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.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 14 ans 3 mois #10684
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Classe où le nom est stocké dans une variable
jbilal écrit:
jbilal écrit:
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(\"System.Management.Automation.TypeAccelerators\"«»)
# Add shortcut of types
Try {
$PBShortCut.GetEnumerator() |
Foreach {
Try {
if ( $DebugPreference -ne \"SilentlyContinue\"«»)
{ Write-debug \"Add TypeAccelerators $($_.Key) =$($_.Value)\" }
$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 (\"Call : {0}\" -F $MyInvocation.InvocationName)
#Remove shortcuts
$PBShortCut.GetEnumerator() |
Foreach {
Try {
if ( $DebugPreference -ne \"SilentlyContinue\"«»)
{ Write-debug \"Remove TypeAccelerators $($_.Key)\" }
[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
Non, c'est plus un \"alias\".Le concept est de créer une classe qui en appelle une autre ?
jbilal écrit:
On créé des instances, des objets, pas des classes, PS ne sait pas le faire en natif.Du genre on appelle la classe [blahblah] celle ci nous renvoit vers la classe qu'on appelle ?
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(\"System.Management.Automation.TypeAccelerators\"«»)
# Add shortcut of types
Try {
$PBShortCut.GetEnumerator() |
Foreach {
Try {
if ( $DebugPreference -ne \"SilentlyContinue\"«»)
{ Write-debug \"Add TypeAccelerators $($_.Key) =$($_.Value)\" }
$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 (\"Call : {0}\" -F $MyInvocation.InvocationName)
#Remove shortcuts
$PBShortCut.GetEnumerator() |
Foreach {
Try {
if ( $DebugPreference -ne \"SilentlyContinue\"«»)
{ Write-debug \"Remove TypeAccelerators $($_.Key)\" }
[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
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les initiés
- Classe où le nom est stocké dans une variable