#workflow-foundation #workflow-foundation-4
#рабочий процесс-основа #рабочий процесс-foundation-4
Вопрос:
Я смог загрузить объекты linq2sql в свой экземпляр службы рабочего процесса и смог без проблем получить доступ к значениям из этих объектов. Однако я заметил, что созданные мной действия рабочего процесса, которые загружали эти объекты, неожиданно вызывались при получении, И мой рабочий процесс не работал должным образом.
Я подозревал, что это проблема с сериализуемостью. Когда я устранил хранилище объектов, но просто сохранил некоторые выбранные «значения» из объекта (простые типы — bool, int), дополнительные вызовы исчезли, и рабочий процесс начал работать должным образом.
Итак, есть идеи о том, почему я мог видеть эти проблемы? Кто-нибудь действительно ЗНАЕТ, было ли это связано с сериализацией или note?
Мысли?
Ответ №1:
Я полагаю, что L2S по умолчанию использует события для отслеживания изменений, поэтому объекты, используемые в рабочем процессе, фактически содержат ссылки на контекстный объект L2S. И при сериализации он попытается сериализовать все это и перезагрузить позже, что не сработает. Лучше всего использовать простые объекты DTO, которые можно безопасно сериализовать и десериализовать как часть состояния рабочего процесса.
Комментарии:
1. Спасибо. Я подозревал, что это будет ответом.