public RecyclableAppDomain (string name)
{
var info = new AppDomainSetup () {
//appbase needs to allow loading this assembly, for remoting
ApplicationBase = System.IO.Path.GetDirectoryName (typeof (TemplatingAppDomainRecycler).Assembly.Location),
DisallowBindingRedirects = false,
DisallowCodeDownload = true,
DisallowApplicationBaseProbing = false,
ConfigurationFile = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile,
};
domain = AppDomain.CreateDomain (name, null, info);
var t = typeof(DomainAssemblyLoader);
AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;
assemblyMap = (DomainAssemblyLoader) domain.CreateInstanceFromAndUnwrap(t.Assembly.Location, t.FullName);
AppDomain.CurrentDomain.AssemblyResolve -= CurrentDomain_AssemblyResolve;
domain.AssemblyResolve += assemblyMap.Resolve;// new DomainAssemblyLoader(assemblyMap).Resolve;
}