Serialización / Deserialización y constructores no predeterminados

Considera esta clase:

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

Puedo persistir los objetos de esta clase, serializando todos los miembros con atributoPersistMember. Pero estoy enfrentando algunos problemas (problemas de diseño) durante el proceso de deserialización. En particular, el problema es con el"posiblemente otras inicializaciones IMPORTANTES" que podría estar allí en el constructor, y el programador puede decidirno para hacer pocos miembros persistentes (es decir, no agregarPersistMember para ellos) posiblemente porque eso no tiene sentido.

En tal situación, ¿cómo deserializaría el objeto exactamente al mismo estado en que estaba? Supongo que esta pregunta se reduce a esto: ¿cómo llamaría al constructor no predeterminado, pasando elmismo Argumentos a ello, que fue pasado antes? ¿Hay alguna forma de hacer eso? ¿Podemos hacer algunas reglas que puedan ser aplicadas por el compilador (tipo de metaprogramación)? Los atributos de constructor pueden ayudar aquí?

Respuestas a la pregunta(2)

Su respuesta a la pregunta