单独的.NET应用程序域中的实例使用相同的引用实例
||
我正在通过单独的应用程序域创建两个实例(通过工厂),但最终它们使用的是相同的引用实例,而不是每个实例。引用的实例取决于非托管dll,这可能是原因吗?
如何验证两个实例实际上在单独的应用程序域中运行?
AppDomain appDomain1 = AppDomain.CreateDomain(\"AD1\");
Factory factory1 = (Factory)appDomain1.CreateInstanceAndUnwrap(typeof(Factory).Assembly.FullName, typeof(Factory).FullName);
MyClass myInstance1 = factory1.CreateInstance();
AppDomain appDomain2 = AppDomain.CreateDomain(\"AD2\");
Factory factory2 = (Factory)appDomain2.CreateInstanceAndUnwrap(typeof(Factory).Assembly.FullName, typeof(Factory).FullName);
MyClass myInstance2 = factory2.CreateInstance();
MyClass对单例类的引用,该类对非托管dll中的代码具有依赖性。 myInstance1和myInstance2引用相同的单例实例,即使它们在单独的应用程序域中执行。
怎么可能?我如何验证它们实际上是单独的应用程序域?
没有找到相关结果
已邀请:
1 个回复
系漏
。此MSDN页面上有一个很好的示例AppDomain.ExecuteAssembly方法。这是重要的部分: