什么是StreamingContextStates.CrossAppDomain?

时间:2011-05-30 12:02:59

标签: .net streaming appdomain

MSDN文档指出: StreamingContextStates.CrossAppDomain specifies that the source or destination context is a different app-domain.

我知道app-domains是什么,但它仍无法帮助我理解StreamingContextStates的实际想法。 有人可以用简单(技术性较低)的语言向我解释。 我只是通过阅读它的文档来理解一个概念并不擅长。

1 个答案:

答案 0 :(得分:2)

这里的想法是如果你想要,你可以通过在不同场景中使用不同的序列化来节省资源。例如,您的某些数据可能位于某些操作系统资源中,可用于整个过程。

如果您在一个进程中有多个AppDomain,并且正在使用远程处理它们之间进行通信,那么当您发现CrossAppDomain选项时,您可能只是复制底层操作系统句柄 - 现有句柄从AppDomain开始一样有效,因为操作系统处理器并不真正了解app-domains。

IIRC,string实际上对整个流程空间都有效,无需序列化 - 因此这可能只是保留引用的一个有趣的案例。

其他选项可以是同一个应用程序域,同一台机器,不同机器等。

但是,IMO会让您面临更多复杂性。在非常专业的情况下,这只值得担心。在一般情况下,最好只是序列化为预定义的存储表示,然后重新水化。