Что такое StreamingContextStates.CrossAppDomain? - PullRequest
1 голос
/ 30 мая 2011

Документация MSDN гласит: StreamingContextStates.CrossAppDomain specifies that the source or destination context is a different app-domain.

Я знаю, что такое домены приложений, но все же это не помогает мне понять реальную идею StreamingContextStates.Может кто-нибудь объяснить мне это простым (менее техническим) языком.Я не так хорош в понимании концепции, просто читая ее документацию.

1 Ответ

2 голосов
/ 30 мая 2011

Идея в том, что , если вы хотите , вы можете сэкономить ресурсы, используя разные сериализации в разных сценариях.Например, может случиться так, что некоторые ваши данные находятся в неком ресурсе ОС, который будет работать для всего вашего процесса.

Если у вас есть несколько AppDomain в одном процессе, и вы используете удаленное взаимодействие для общения междуих, затем, когда вы обнаружите опцию CrossAppDomain, вы можете просто скопировать основной дескриптор ОС - этот существующий дескриптор так же действителен из любого AppDomain, поскольку дескрипторы ОС на самом деле не знают о доменах приложений.

IIRC, string действительно действителен во всем пространстве процесса, без необходимости сериализации - так что может быть интересным просто сохранить ссылку.

Другими вариантами будет тот же-app-domainТем не менее, один и тот же компьютер, другой компьютер и т. д.

IMO, но это только увеличивает сложность.Об этом стоит беспокоиться только в очень специализированных сценариях.В общем случае лучше просто сериализовать в заранее определенное представление хранилища и выполнить повторную гидратацию.

...