如何获取C#中新AppDomain中的dll列表

时间:2016-06-20 08:53:21

标签: c#

我创建了一个控制台应用程序,并使用下面的代码创建一个新的AppDomain,并在文件夹中保留了一些dll(示例)。现在我正在尝试将这些dll从文件夹移动到新创建的Appdomain。将这些dll移动到新的appdomain后,我想创建另一个新的AppDomain1再次将dll从文件夹移动到这个新的AppDomain1。创建两个不同的appdomains后,现在我想要新创建的appDomains列表,以及每个新appDomins.Below中加载的dll列表是代码,我尝试使用创建一个新的appdomain。让我知道谁可以获得。

using mscoree;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;

namespace AssemblyLoader
{
    class Class1
    {
        static void Main(string[] args)
        {
            string Source = @"C:\dlls\"; //Here I kept my dlls
            string[] serverdlls = Directory.GetFiles(Source); // getting all the dll from location
            var newDomain = AppDomain.CreateDomain("newDomain0122");//Here I m creating New Domain after creating new domain want to move dll's from source folder to this newly created domain
            var asmLoaderProxy = (ProxyDomain)newDomain.CreateInstanceAndUnwrap(Assembly.GetExecutingAssembly().FullName, typeof(ProxyDomain).FullName);
            foreach (string dll in serverdlls)
            {
                asmLoaderProxy.GetAssembly(dll);
            }
        }
    }

    class ProxyDomain : MarshalByRefObject
    {
        public void GetAssembly(string AssemblyPath)
        {
            try
            {
                Assembly.LoadFrom(AssemblyPath);
            }
            catch (Exception ex)
            {
                throw new InvalidOperationException(ex.Message, ex);
            }
        }
    }
}

0 个答案:

没有答案