Question Classes C# et using
- sokai
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 17
- Remerciements reçus 0
il y a 15 ans 1 mois #8726
par sokai
Classes C# et using a été créé par sokai
Lors de l'enregistrement d'une signature d'une classe C#.
Lorsque je fais :
[code:1]$signature = @\"
using System;
using System.Windows.Form;
.
.
.
\"@
[/code:1]
Je reçois : Le type ou le nom d'espace de noms 'Windows' n'existe pas...
Alors que si je fais directement add-type -assemblyname System.Windows.Form ca marche.
Quelqu'un pourrait-il m'expliquer pourquoi ?
Merci<br><br>Message édité par: sokai, à: 4/02/11 13:57
Lorsque je fais :
[code:1]$signature = @\"
using System;
using System.Windows.Form;
.
.
.
\"@
[/code:1]
Je reçois : Le type ou le nom d'espace de noms 'Windows' n'existe pas...
Alors que si je fais directement add-type -assemblyname System.Windows.Form ca marche.
Quelqu'un pourrait-il m'expliquer pourquoi ?
Merci<br><br>Message édité par: sokai, à: 4/02/11 13:57
Connexion ou Créer un compte pour participer à la conversation.
- Arthur
- Hors Ligne
- Membre elite
-
Réduire
Plus d'informations
- Messages : 226
- Remerciements reçus 0
il y a 15 ans 1 mois #8727
par Arthur
Réponse de Arthur sur le sujet Re:Classes C# et using
test : \"using System.Windows.Forms;\"
Avec un \"s\" a form.
msdn.microsoft.com/en-us/library/system.windows.forms.aspx
Avec un \"s\" a form.
msdn.microsoft.com/en-us/library/system.windows.forms.aspx
Connexion ou Créer un compte pour participer à la conversation.
- sokai
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 17
- Remerciements reçus 0
il y a 15 ans 1 mois #8782
par sokai
Réponse de sokai sur le sujet Re:Classes C# et using
Erreur de recopiage
.
Il y a bien le \"s\" dans ma signature.
Le problème ne vient pas de là.
Il y a bien le \"s\" dans ma signature.
Le problème ne vient pas de là.
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 15 ans 1 mois #8786
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Classes C# et using
sokai écrit:
Add-Type utilise les APIs CodeDom qui fonctionnent de la même manière.
Je peux avoir \"Using Company.Tools.Class\" avec Company.Tools.Class hébergée par Toto.dll.
Il me semble que l'usage du mot clè using est interprété par le compilateur,sans plus, mais le linker à besoin de connaître les assemblies référencées.Quelqu'un pourrait-il m'expliquer pourquoi ?
Add-Type utilise les APIs CodeDom qui fonctionnent de la même manière.
Je peux avoir \"Using Company.Tools.Class\" avec Company.Tools.Class hébergée par Toto.dll.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- sokai
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 17
- Remerciements reçus 0
il y a 15 ans 1 mois #8935
par sokai
Réponse de sokai sur le sujet Re:Classes C# et using
Hmmmm il y a quelque chose que je ne comprends pas.
Si Add-Type fonctionne de la même manière que le using,
pourquoi \"add-type -assemblyname System.Windows.Forms\" marche et pas \"using System.Windows.Forms;\" dans la signature ? ...
Dois-je référencé l'assemblie au linker ?
Si oui comment fait-on ?
Merci pour vos réponses
!
Si Add-Type fonctionne de la même manière que le using,
pourquoi \"add-type -assemblyname System.Windows.Forms\" marche et pas \"using System.Windows.Forms;\" dans la signature ? ...
Dois-je référencé l'assemblie au linker ?
Si oui comment fait-on ?
Merci pour vos réponses
Connexion ou Créer un compte pour participer à la conversation.
- Arthur
- Hors Ligne
- Membre elite
-
Réduire
Plus d'informations
- Messages : 226
- Remerciements reçus 0
il y a 15 ans 1 mois #8948
par Arthur
Réponse de Arthur sur le sujet Re:Classes C# et using
Il faut juste ajouter une Assembly.
Enfin ca à l'air de marcher, mais je n'ai jamais crée une interface graphique en C# sur une console powershell.
[code:1]$GUI= @\"
using System;
using System.Windows;
using System.Windows.Forms;
using System.Text;
public class GUI
{
public void Exemple()
{
MessageBox.Show(\"Salut\"«»);
}
}
\"@
Add-Type -TypeDefinition $GUI -ReferencedAssemblies \"System.Windows.Forms\"
$TestGUI = New-Object \"GUI\"
$TestGUI.Exemple()[/code:1]
EDIT: Arf grillé.
Sinon d'après powershell (paramètre ReferencedAssemblies) : \"Specifies the assemblies upon which the type depends. By default, Add-Type references System.dll and System.Man
agement.Automation.dll. The assemblies that you specify by using this parameter are referenced in addition to t
he default assemblies.\"
Ensuite il faut regarder du coté du msdn prenons l'exemple de la classe TcpClient :
msdn.microsoft.com/fr-fr/library/system....ckets.tcpclient.aspx
On peut voir que Assembly : System (dans System.dll)
Si l'on regarde Windows.forms par exemple
msdn.microsoft.com/en-us/library/system.windows.forms.form.aspx
Assembly: System.Windows.Forms (in System.Windows.Forms.dll)
On peut donc voir que forms est dans une autre dll qui n'est pas chargée par défaut par powershell.
Il faut donc la préciser.
Enfin c'est ma théorie mais elle à l'air correct.
Heureusement que les classes .net n'ont pas la même doc que powershell.
Message édité par: bilbao, à: 17/02/11 20:45<br><br>Message édité par: bilbao, à: 17/02/11 20:53
Enfin ca à l'air de marcher, mais je n'ai jamais crée une interface graphique en C# sur une console powershell.
[code:1]$GUI= @\"
using System;
using System.Windows;
using System.Windows.Forms;
using System.Text;
public class GUI
{
public void Exemple()
{
MessageBox.Show(\"Salut\"«»);
}
}
\"@
Add-Type -TypeDefinition $GUI -ReferencedAssemblies \"System.Windows.Forms\"
$TestGUI = New-Object \"GUI\"
$TestGUI.Exemple()[/code:1]
EDIT: Arf grillé.
Sinon d'après powershell (paramètre ReferencedAssemblies) : \"Specifies the assemblies upon which the type depends. By default, Add-Type references System.dll and System.Man
agement.Automation.dll. The assemblies that you specify by using this parameter are referenced in addition to t
he default assemblies.\"
Ensuite il faut regarder du coté du msdn prenons l'exemple de la classe TcpClient :
msdn.microsoft.com/fr-fr/library/system....ckets.tcpclient.aspx
On peut voir que Assembly : System (dans System.dll)
Si l'on regarde Windows.forms par exemple
msdn.microsoft.com/en-us/library/system.windows.forms.form.aspx
Assembly: System.Windows.Forms (in System.Windows.Forms.dll)
On peut donc voir que forms est dans une autre dll qui n'est pas chargée par défaut par powershell.
Il faut donc la préciser.
Enfin c'est ma théorie mais elle à l'air correct.
Heureusement que les classes .net n'ont pas la même doc que powershell.
Message édité par: bilbao, à: 17/02/11 20:45<br><br>Message édité par: bilbao, à: 17/02/11 20:53
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.055 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les initiés
- Classes C# et using