Bonjour voila je veux creer un app domaine pour faire un beau docallback
avec le code suivant

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);
avec evidement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
public static void loadAssembly()
{
    AppDomain.CurrentDomain.SetData(RESULT, "loadAssembly");
}
tout cela marche tres en debug
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
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);
avec
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;
}
mais le bougre refuse de se soumettre a mon bon vouloir

kekun a t'il une idée lumineuse ?