Я хотел бы контролировать создание объектов типа, который обычно не сериализуем во время десериализации, используя NetDataContractSerializer (или любой другой сериализатор, который я предполагаю).Используя пользовательский SerializationBinder, я могу управлять созданным типом и использовать пользовательские ISurrogateSelector и ISerializationSurrogate, чтобы контролировать, как устанавливается состояние объекта.
Что я не могу сделать, так это создать объект сам, чтобы разрешить использованиевнедрение зависимости или что-то.Объект, вызывающий проблемы, находится внутри графа объектов, поэтому я не могу его редактировать перед сериализацией.
Есть ли способ, позволяющий моему коду создавать десериализованный объект?
(Для фона я пишу пользовательское хранилище экземпляров персистентности WF4 на основе XmlWorkflowInstanceStore в примерах WF. Я хочу создать рабочие процессы, которые имеют переменные, которые являются интерфейсами ... и конкретные типы не могут быть созданы напрямую.Единственный пример, который я могу найти с пользовательским постоянством, и он использует NetDataContractSerializer для сериализации состояния рабочего процесса.)