IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Code compilé a la volé : CodeDom (ControlScript)


Sujet :

VB.NET

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 10
    Points : 8
    Points
    8
    Par défaut Code compilé a la volé : CodeDom (ControlScript)
    bonsoir a tous

    je passe mon application de VB6 en 2005

    je cherche beaucoup et trouve peu d'exemple en Vb (pas de souci en C#, mais je ne connais pas)

    j'aimerais utiliser la nouvelle mouture de 2005 qui remplace le ScriptControl.

    Dans mon appli les utilisateurs saisisent du code pour personnaliser l'apli.

    pour comprendre l'utilisation de CodeDom j'aimerais faire compiler en memoire le programme suivant :
    a premiere vue ca a l'air d'etre simple loin de la
    merci de votre contribution

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 176
    Points : 25 118
    Points
    25 118
    Par défaut
    il y a eut plusieurs exemple d'utilisation de codedom posté sur le forum vb, utilise la fonction recherche

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 10
    Points : 8
    Points
    8
    Par défaut Voici une partie de la reponse!
    J'ai créer une Form avec un Bouton et un Textbox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    txbScript.Text= "Imports System
    Imports Microsoft.VisualBasic 
     
    NameSpace Test
    	Class TestCode
    		Public Sub Main()
    			msgbox("hjkh")
    			msgbox(5*2)
    		End Sub
    	End Class
    End NameSpace"
    Code du Form :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Private Sub butExecuter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butExecuter.Click
    	ExecuteCommand1()
    End Sub
     
    Private Sub ExecuteCommand1()
    	Dim vbCodeProv As VBCodeProvider = New VBCodeProvider
    	Dim cParam As CodeDom.Compiler.CompilerParameters = New CodeDom.Compiler.CompilerParameters
     
    	' Ajout des références
    	cParam.ReferencedAssemblies.Add("System.dll")
     
    	' Options du compilateur
    	cParam.CompilerOptions = "/t:library"	'L'assembly est une bibliothèque de classe,
    	cParam.GenerateInMemory = True	'générée uniquement en mémoire.
     
    	' Résultat de la compilation
    	Dim cResult As CodeDom.Compiler.CompilerResults = vbCodeProv.CompileAssemblyFromSource(cParam, txbScript.Text)
     
    	If cResult.Errors.Count > 0 Then
    		Dim Errors As String = "Erreur(s) : "
    		For Each ce As CodeDom.Compiler.CompilerError In cResult.Errors
    			Errors &= vbCrLf & ce.ErrorText
    		Next ce
    		MsgBox(Errors)
     
    	End If
     
    	' Récupération de l'assembly généré
    	Dim myAssembly As System.Reflection.Assembly = cResult.CompiledAssembly
    End Sub
    Voila quant j'execute et click sur le bouton la compilation en memoire est correcte mais je n'arrive pas a trouver la facon d'ecxecuter ce VB

    Pour Ceux qui comprennent les objet System.Reflection et VBCodeProvider : Merci de votre aide

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 176
    Points : 25 118
    Points
    25 118
    Par défaut
    tonobjetassembly.gettype.getmethod("nom_de_la_sub").invoke

  5. #5
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    J'ai donné récemment un exemple simple de calcul de formule utilisant la génération via CodeDom et exécutant le code généré. Regarde et traduit le en VerBeux

Discussions similaires

  1. les fichiers .class ne se compilent pas à la volé?
    Par talbi404 dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 20/12/2006, 19h39
  2. Réponses: 4
    Dernier message: 04/08/2006, 01h02
  3. Réponses: 2
    Dernier message: 25/07/2006, 11h52
  4. Code compilable sous Windows et Unix
    Par xzed dans le forum C
    Réponses: 9
    Dernier message: 16/05/2006, 16h06
  5. [CODE] Compilation conditionnelle ?
    Par Cornell dans le forum Langage
    Réponses: 3
    Dernier message: 16/09/2003, 18h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo