创建应用程序域时,是否可以将一组先前构造的对象视为属于该应用程序域而不是最初构造它们的应用程序域?
我的目标是调整一些预先存在的代码,以便通过应用程序域更好地隔离内存测试。但是,插入使用需要最少量重写现有代码的应用程序域的时间点(当一个给定的测试场景即将运行以便可以监视其内存使用时)已经恰好有一些测试用例对象中定义的测试中使用的数据。
如果我可以将测试用例对象转移到新的应用程序域,那么这将解决我的问题,但我找不到这样做的方法。在新应用程序域中制作测试用例对象的深层副本是我考虑的另一种情况,但是如果测试用例中使用的某些程序集同时存在于两个应用程序域中,则可能会出现某些问题。 (如果我在两个域中都有一个测试用例的实例,那么它们在技术上就是这样的,即使它们实际上只用在第二个域中,它与第一个域分开了。)
编辑:SetData的问题在于,据我所知,它会复制。我需要该对象有效地停止原始应用程序域中的现有,就好像它是在第二个应用程序域中创建的一样。根据可能的重复链接,AppDomainSetup仅允许传入字符串(并且可能通过在新域中进行复制来实现,而不是使字符串被视为在不同的逻辑内存划分下)。