Я поместил некоторые данные в контекст вызова ( CallContext.SetData (key, data)
), где данные относятся к типу, который реализует ILogicalThreadAffinative
. Причина, по которой он реализует ILogicalThreadAffinative, заключается в том, что он должен совместно использоваться несколькими потоками в текущем приложении.
Однако приложение также выполняет удаленные вызовы другой службы, и здесь возникает проблема. Моя реализация ILogicalThreadAffinative не сериализуема и не должна. Даже если бы я пометил его как сериализуемый, удаленное приложение не имеет доступа к сборке, в которой объявлен тип, поэтому оно не сможет десериализовать его.
Итак, как мне поделиться данными контекста вызова в моем приложении (AppDomain), но не со всеми внешними приложениями, с которыми ему нужно общаться?