请教 跨Appdomain传值 的问题
间谍 2010-09-17 05:58:01 .net via c#中有处不理解,水平比较菜,可能没问到点子上,请大家帮忙。
书中600页左右有个Accessing Objects Across AppDomain Boundaries的例子,大概流程这样:
1. 在当前Appdomain AD#1中创建一个新的Appdomain AD#2
2. 在AD #2中加载一个Assembly S,创建类 C
3. AD#1得到一个Marshaled-by-reference的远程的引用 r
4. 调用这个AD#1中r调用AD#2的函数fun,返回一个marshaled-by-val的引用r2,指向一个从AD#2的S被序列化到AD#1中的C2
按书中说法,第4步之后,因为需要meta信息,AD#1中也会加载S,而assembly是不能卸载的,这样的话在上述步骤后卸载掉AD#2后与下面的做法有什么区别呢?
1. 在当前Appdomain AD#1中加载S
2. 创建类C2
如果没有区别的话,是不是说*在本机appdomain间以书中例子为目的*做by val是没意义的呢?这种手段的具体应用场合有些什么呢?感謝大家。