begin process at 2010 02 09 23:22:18
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Windows

 > 

Autre

 > 

generation dynamique de code


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

generation dynamique de code

mercredi 25 juillet 2007 à 10:57:10 | generation dynamique de code

Blobette

Bonjour à tous,

Je suis à la recherche d'un moyen pour réaliser la chose suivante en C# : j'aurais une IHM dans laquelle l'utilisateur pourra ecrire en C# des petits programme, utilisant des objets ainsi que des methodes que je lui fournirai. Ce bout de code doit pouvoir être compile dynamement et être stocké de façon à ce que l'ihm puisse permettre d'y accéder et de l'executer ensuite.

J'ai pense que je pourrai peut etre creer dynamiquement des dll, avec des points d'entree implementant tous une interface donnee. Pour accéder dynamiquement depuis mon programme (celui de l'IHM) aux nom des dll dispo (pour pouvoir donner a l'utilisateur la liste des procedures dispo) on m'a parlé des méthodes du namespace "Reflection". Ainsi, j'aurai a récuperer juste le nom de la dll et apres comme les dll créables dans l'ihm implémenteraient toutes la meme interface, je pourrais appeler la procedure principale facilement sans changer mon code.

C'est une theorie, qu'en pensez-vous?
un de mes principaux problemes est que je ne sais pas du tout comment creer dynamiquement une dll avec une interface specifique dedans et tout....

voilou
j'espere que vous pourrez m'eclairer!
merki  

Blobette



mercredi 25 juillet 2007 à 16:35:17 | Re : generation dynamique de code

Yxion

Membre Club
Si je comprends bien, tu veux que ton app compile du C#... utilise le compilateur du SDK en ligne de commande (csc.exe pour C#)


I love .net
jeudi 26 juillet 2007 à 13:49:56 | Re : generation dynamique de code

SharpMao

Membre Club
Hello,

Si tu veux vraiement le faire à la volée, tu peux aussi regarder du côté de Microsoft.CSharp.CSharpCodeProvider et de System.CodeDom.

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
jeudi 26 juillet 2007 à 23:13:01 | Re : generation dynamique de code

ShareVB

salut,

tu as plusieurs techniques possibles :
-> les "macros" en c#/vb.net compilé
-> le principe de plugin : cela nécessite de créer une interface commune mais aussi de développer les plugins avec visual studio...je ne pense pas qu'il soit raisonnable de générer des plugins à la volée...de plus ce n'est pas vraiment le contexte

en fait, tu peux générer des assemblies de plusieurs manières :
-> avec un fichier source préétabli que tu as ou que tu construit à partir de chaines et que tu peux compiler avec Microsoft.CSharp.CSharpCodeProvider
-> tu construis un code c#/vb.net à partir de bout de code (implémentation des méthodes) et tu laisses CodeDom faire la structure du fichier source
-> tu construis directement l'assembly en IL avec System.Reflection.Emit...mais ca c'est plus limité

infos complémentaires :
http://www.divil.co.uk/net/articles/plugins/scripting.asp
http://www.codeproject.com/csharp/csscriptengine.asp
http://www.codeproject.com/csharp/runtime_eval.asp
http://www.techheadbrothers.com/Articles.aspx?Id=1c542078-b10a-4200-9f91-2519f2f64a2b

ShareVB
samedi 28 juillet 2007 à 00:05:14 | Re : generation dynamique de code

Blobette

Merci pour ces reponses!

j'ai fait des tests avec cette solution :

"en fait, tu peux générer des assemblies de plusieurs manières :
-> avec un fichier source préétabli que tu as ou que tu construit à partir de chaines et que tu peux compiler avec Microsoft.CSharp.CSharpCodeProvider"  > ShareVB

je pense que je vais faire comme ça!
Merci encore à tous

Blobette








Cette discussion est classée dans : code, dll, interface, dynamiquement, ihm


Répondre à ce message

Sujets en rapport avec ce message

Prb avec DLL [ par pirate75000 ] C'est la premiere fois que je travail en C#Merci de votre aideJe dois appeller une fonction d'une Dll en c++ c'est ecrit de la maniere suivante:La str Integrer dll dynamiquement [ par Ulmo ] Salut,Est ce que quelqu'un sait comment on fait pour :1. Intergrer une dll dynamiquement dans un projet2. Utiliser les fonctions de cette dll integrée Debug DLL [ par RegVB ] Bonjour,J'ai une solution C# dans lequel j'ai un projet principal console et un projet DLL utilisé par mon projet console. Existe-t-il un moyen lorsqu QuartzTypeLib.dll et MP3 [ par lsweb ] Bonjour,Quelqu'un aurait-il un code source simple (pour un débutant !) d'un projet illustrant l'utilisation de la QuartzType .dll pour implémenter la Assembly, Reflection et Dll [ par bigflo93 ] Bonjour à tous :)Voilà je me trouve confronté à un nouveau problème concernant la réflection en C# (et .Net en général)Le pb est le suivant:J'ai une D format SQL [ par Florynth ] Bonjour à tous,je veux créé un dll .net qui a besoin d'accès à une base de donnés mais qui est portable... Ce que je veux dire c'est si j'installe mon Charger une DLL Dynamiquement [ par Kaneda Shotaro ] Bonjour !Je cherche comment charger une DLL dynamiquement et récuprérer l'adresse d'une fonction contenue dans celle-ci. En Delphi ça donne ça :TInitP Objet unique [ par fregolo52 ] Bonjour,Je suis en .NET 1.1Je me suis basé sur le snipper singleton de Nikoui mais ca ne marche pas.Ce que je veux, en gros, c'est un singleton multip Charger dynamiquement une dll [ par rocknbananas ] Bonjour,Dans mon projet, j'ai besoin de charger une dll. J'ai fait le test en utilisant DllImpor, et ca marche sans problème. Mais comme je ne sais pa DLL et Services Web [ par rafraf ] Salut à tous ! J'ai un petit pb avec les DLL en code non managé, en mode Service Web, J'essaye de faire appel à une DLL dans un service web, j


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,281 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales