Bonjour voila je veux creer un app domaine pour faire un beau docallback
avec le code suivant
avec evidement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 AppDomain tempAppDomain = AppDomain.CreateDomain("TempDomainZ"); tempAppDomain.DoCallBack(loadAssembly); AppDomain.Unload(tempAppDomain);
tout cela marche tres en debug
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public static void loadAssembly() { AppDomain.CurrentDomain.SetData(RESULT, "loadAssembly"); }
mais essayez la chose suivante
dans le repertoire bin\debug changez le nom de votre executable et celui du pdb (ou effacez le pdb)
lancez le tout et ..... il n'arrive plus a trouver l'assembly d'origine pour la fonction loadAssembly ... c'est ballot !!!
j'ai bien tenté de lui injecter dans le nouveau domaine l'assembly en cours
avec
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 string path = System.Reflection.Assembly.GetExecutingAssembly().Location; AppDomain tempAppDomain = AppDomain.CreateDomain("TempDomainZ"); Assembly a = tempAppDomain.Load(loadFile(path)); string s = a.FullName; MessageBox.Show(s); tempAppDomain.DoCallBack(loadAssembly); AppDomain.Unload(tempAppDomain);
mais le bougre refuse de se soumettre a mon bon vouloir
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public static byte[] loadFile(string filename) { FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read); byte[] buffer = new byte[(int)fs.Length]; fs.Read(buffer, 0, buffer.Length); fs.Close(); return buffer; }
kekun a t'il une idée lumineuse ?
Partager