3

Я хотел бы управлять созданием объекта типа, который обычно не сериализуется во время десериализации с помощью NetDataContractSerializer (или любого, по моему мнению, сериализатора). Используя пользовательский SerializationBinder, я могу управлять созданным типом и использовать пользовательский ISurrogateSelector и ISerializationSurrogate для управления тем, как состояние установлено на объекте.Создание объекта управления при десериализации

То, что я не могу сделать, это создать сам объект, чтобы позволить использовать инъекцию зависимостей или что-то в этом роде. Объект, вызывающий проблемы, находится внутри графа объекта, поэтому я не могу его редактировать до сериализации.

Есть ли способ разрешить мой код для создания десериализованного объекта?

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

ответ

0

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

0

Я знаю, что этот вопрос старый, но вы искали GetSafeUninitializedObject?

Смежные вопросы