2011-11-04 49 views
1

我得到了下面的代码生成一个DLL:从DLL/Assembly获取实例?

public class MyObject : DependencyObject 
{ 
} 


public class Timer : DependencyObject 
{ 
} 

public class AnotherClass 
{ 
} 

public class Test 
{ 
    public static void Main() 
    { 
     MyObject q1 = new MyObject(); 
     MyObject q2 = new MyObject(); 
     MyObject q3 = new MyObject(); 
     MyObject q4 = new MyObject(); 

     Timer t1 = new Timer(); 
     Timer t2 = new Timer(); 
     Timer t3 = new Timer(); 

     AnotherClass a1 = new AnotherClass(); 
     AnotherClass a2 = new AnotherClass(); 
     AnotherClass a3 = new AnotherClass(); 
    } 
} 

那么我想从我的DLL文件中提取实例。下面是我得到的那一刻:

var library = Assembly.LoadFrom(libraryPath); 

但后来,我还没有有关如何提取我的10个实例(4个MyObjects,3个定时器& 3 AnotherClasses)任何想法。我设法得到的唯一的事情就是4类(为MyObject,定时器,AnotherClass和测试)的代码:

IEnumerable<Type> types = library.GetTypes(); 

,但我觉得这不是我会得到我的10个实例的方式......

(PS:我甚至不能确定的10个实例包含在我的DLL文件...)

+0

你很混乱*​​类型*和*对象*。 Main()创建的对象被局部变量引用,你不能去它们。它们也不以任何方式与DLL相关联,它们像其他任何对象一样生活在垃圾收集堆中。程序集包含代码,而不是数据。 –

回答

4

你的问题没有任何意义。

这些实例仅在执行Main()时存在。

如果Main()包含一个依赖于用户输入的循环,您想获得什么?