Сериализация / десериализация и конструкторы не по умолчанию

Рассмотрим этот класс:

[Persistable]
public sealed class FileMoveTask : TaskBase
{
     [PersistMember]
     public string SourceFilePath { get; private set;}

     [PersistMember]
     public string DestFilePath { get; private set;}

     public FileMoveTask(string srcpath, string dstpath)
     {
         this.SourceFilePath = srcpath;
         this.DestFilePath = dstpath;

         //possibly other IMPORTANT initializations
     }

     //code
}

Я могу сохранить объекты этого класса, сериализовав все члены с атрибутомPersistMember, Но я'Я столкнулся с некоторыми проблемами (проблемами проектирования) в процессе десериализации. В частности, проблема с "возможно другие ВАЖНЫЕ инициализации " который может быть в конструкторе, и программист может решить,не сделать несколько участников постоянными (т.е. не добавлятьPersistMember им) возможно, потому что это нене имеет смысла.

В такой ситуации, как бы я десериализовал объект до точно такого же состояния, как было? Я полагаю, этот вопрос сводится к следующему: как бы я вызвал конструктор не по умолчанию, передаваятак же аргументы к нему, который был передан раньше? Есть ли способ сделать это? Можем ли мы создать некоторые правила, которые могут быть применены компилятором (своего рода метапрограммирование)? Атрибуты конструктора могут помочь здесь?

Ответы на вопрос(2)

Ваш ответ на вопрос