应用领域之间的内存共享

时间:2011-11-28 11:09:52

标签: .net appdomain

对于每个进程,分配一个单独的内存。在.net中,该过程可以包含多个应用程序域。如何为每个应用程序域分配内存?他们是否共享过程的共同记忆?

1 个答案:

答案 0 :(得分:1)

不允许他们访问相同的内存并共享此内存空间中的对象,当您将对象从一个应用程序域传递到另一个应用程序域时,应该对这些对象进行编组:

Application Domains

  

在一个应用程序中运行的代码无法直接访问代码或   其他应用程序的资源。公共语言运行库   通过阻止对象之间的直接调用来强制执行此隔离   不同的应用领域。在域之间传递的对象是   由代理复制或访问。如果复制了对象,则调用   对象是本地的。也就是说,调用者和对象都是   引用的是在同一个应用程序域中。如果对象是   通过代理访问,对对象的调用是远程的。在这   case,调用者和被引用的对象是不同的   应用领域。 跨域调用使用相同的远程调用   基础架构作为两个进程之间或两台机器之间的调用。   因此,被引用对象的元数据必须是   两个应用程序域都可用,以允许方法调用   JIT编译正确。如果呼叫域无权访问   要调用的对象的元数据,编译可能会失败   除System.IO.FileNotFound

类型外