Возникла проблема при использовании LogicalCallContext в связки с .NET Remoting.
Эта гадость пытается сериализовать данные в именованных слотах и передать на удалённую сторону.
А там далеко не всегда находятся объекты, которые должны и могут сериализоваться.
Одним из варианов решения проблемы является выполнение Remoting-вызовов в отдельном потоке, предварительно огороженным
ExecutionContext.SuppressFlow / RestoreFlow, это мне не подходит.
Другим — очистка LogicalCallContext от именованных данных перед сериализацией сообщения.
Но помимо ремотинга, возникает необходимость ещё и восстановить их обратно после того, как будет получен ответ, в противном случае уже контекст потока будет перезатёрт контекстом с удалённого сервера (тобишь пустым).
Третье решение — жёстко припинить объект в памяти процесса и передать его по ссылке в связке с уникальным хэшем текущего процесса.
Но это не исключает того, что значение может изменяться или использоваться, как на клиенте, так и на сервере, и может просо стать недоступно.
Для организации ремотинга используется кастомный IClientFormatterSink.
Подскажите — как быть в такой ситуации? Пока наиболее правильным кажется второй вариант, но уж очень по походит на танцы на граблях...