Loading/Unloading assembly in different AppDomain

后端 未结 3 1527
忘掉有多难
忘掉有多难 2020-12-04 15:52

I need to execute a method in an assembly loaded during runtime. Now I want to unload those loaded assemblies after the method call. I know that I need a new AppDomain so I

3条回答
  •  感动是毒
    2020-12-04 16:39

    Try this:

    namespace SeperateAppDomainTest
    {
        class Program
        {
            static void Main(string[] args)
            {
                LoadAssembly();
            }
    
            public static void LoadAssembly()
            {
                string pathToDll = Assembly.GetExecutingAssembly().CodeBase;
                AppDomainSetup domainSetup = new AppDomainSetup { PrivateBinPath = pathToDll };
                var newDomain = AppDomain.CreateDomain("FooBar", null, domainSetup);
                ProxyClass c = (ProxyClass)(newDomain.CreateInstanceFromAndUnwrap(pathToDll, typeof(ProxyClass).FullName));
                Console.WriteLine(c == null);
    
                Console.ReadKey(true);
            }
        }
    
        public class ProxyClass : MarshalByRefObject { }
    

提交回复
热议问题