我试过了,好像不行,因为我再使用(比如再删除DLL)时会出错说这个文件被使用.

解决方案 »

  1.   

    这样用是没有问题的。问题是mAssembly的生存期有没有结束。
    我猜它是个类变量甚至是静态变量,这样在程序退出之前是不会自动释放的。
    如果你把定义放在某个方法里,方法退出的时候就会释放的。一个例子:列出一个程序所有类
    void getfile(string filename)
    {
    Assembly a = Assembly.LoadFrom(filename);
    Module[] m = a.GetModules(); foreach (Module mm in m)
    {
    Type[] types=mm.GetTypes();
    foreach (Type type in types)
    {
    listView1.Items.Add(type.FullName);
    }
    }
    }