title: How to reload an assembly for a .NET Application Domain?
body: <p>
  We are loading an assembly (a DLL) which reads a configuration file. We need to change the configuration file and then re-load the assembly. We see that after loading the assembly the 2nd time, there is no change in the configuration. 
  Anyone see what is wrong here? We left out the details of reading in the configuration file.</p>
  
  <pre><code>AppDomain subDomain;
  string assemblyName = "mycli";
  string DomainName = "subdomain"; 
  Type myType;
  Object myObject;
  
  // Load Application domain + Assembly
  subDomain = AppDomain.CreateDomain( DomainName,
                                      null,
                                      AppDomain.CurrentDomain.BaseDirectory,
                                      "",
                                      false);
  
  myType = myAssembly.GetType(assemblyName + ".mycli");
  myObject = myAssembly.CreateInstance(assemblyName + ".mycli", false, BindingFlags.CreateInstance, null, Params, null, null);
  
  // Invoke Assembly
  object[] Params = new object[1];
  Params[0] = value;
  myType.InvokeMember("myMethod", BindingFlags.InvokeMethod, null, myObject, Params);
  
  // unload Application Domain
  AppDomain.Unload(subDomain);
  
  // Modify configuration file: when the assembly loads, this configuration file is read in
  
  // ReLoad Application domain + Assembly
  // we should now see the changes made in the configuration file mentioned above
  </code></pre>
  
  <p></p>