2010-05-11 100 views
0

我需要在隔离运行插件时使用默认的应用程序域(AD)来创建新的应用程序域(AD1)。 当创建新的域名我也连线了AppDomainUnload事件允许我这样称呼清理代码等如何从AppDomain获取当前实例?

我似乎有问题是:

1)从公元创建AD1

2 )在AD1

运行代码

3)呼叫AD.Unload(AD1)

的代码切换为AD1,并调用卸载事件传递到当前的AppDomain(AD1)的引用。

在这一点上,我想获取AD1中运行的当前实例的引用来调用关闭方法,但AppDomain类中没有GetInstance。

任何想法我怎么能得到它?

回答

0

在AD1中创建实例时,可以将实例存储在AppDoman的静态变量中,静态属性的作用域为AppDomain。或者,如果这不是单例类型的对象,则可以维护AppDomain中对象的列表<>。

你可以把这个“注册”放在你的插件实例的构造函数中。处理Unload时,您可以使用静态列表或枚举列表并对对象执行所需的清理。

1

您是在寻找AppDomain.CurrentDomain

+0

此主题是Kirill关于我们是否曾经在SO上遇到过的问题的完美回答。他坐在我旁边。 – JaredPar 2010-05-11 16:46:55

+0

我敢肯定,它发生的方式与往常一样:) – 2010-05-11 16:49:49

+0

哈哈,贾里德在他的回答中键入,打击刷新和爆炸! :) – 2010-05-11 16:53:12