Serialização / Desserialização e Construtores Não-Padrão

Considere esta classe:

[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
}

Eu posso persistir os objetos desta classe, serializando todos os membros com atributoPersistMember. Mas estou enfrentando alguns problemas (problemas de design) durante o processo de desserialização. Em particular, o problema é com o"possivelmente outras inicializações importantes" que pode estar lá no construtor, e o programador pode decidirnão para tornar alguns membros persistentes (ou seja, não adicionandoPersistMember para eles) possivelmente porque isso não faz sentido.

Em tal situação, como eu desserializaria o objeto exatamente no mesmo estado em que estava? Eu suponho que, esta questão se resume a isso: como eu chamaria o construtor não-padrão, passando omesmo argumentos para isso, o que foi passado antes? Existe alguma maneira de fazer isso? Podemos fazer algumas regras que podem ser aplicadas pelo compilador (tipo de metaprogramação)? Atributos de construtor podem ajudar aqui?

questionAnswers(2)

yourAnswerToTheQuestion