C# sérialiser une classe sans constructeur sans paramètre

Je me suis mise en œuvre d'un modèle de fabrique pour 3 différentes classes de chiffrement. L'usine permettra de déterminer celui qui à créer et ensuite obtenir un sérialisé instance de la classe correcte à partir d'une base de données et de retour à la charge du demandeur.
Je suis en train de travailler sur la sérialisation des classes pour les stocker dans la base de données. Je suis en train d'écrire un pour un la cryptographie PGP classe appelée BouncyCastle. Je peux créer la classe et les clés de fichiers, mais lorsque j'essaie de le sérialiser, il est dit que les deux variables membres, qui sont les objets de la classe PgpPublicKey, et PgpPrivateKey, ne peut pas être sérialisé, car ils n'ont pas sans paramètre constructeurs.

public void createdBouncyFromFiles()
{
    var bc = new BouncyCastle("C:\\TestFiles\\BouncyPublicKey.txt", "C:\\TestFiles\\BouncyPrivateKey.txt", "Password1");
    var xmlSerializer = new XmlSerializer(bc.GetType());
    var textWriter = new StringWriter();
    xmlSerializer.Serialize(textWriter, bc);
    var theSerializedClass = textWriter.ToString();
}

La classe a deux variables membres qui sont le problème.

public class BouncyCastle : ICryptographyProvider
{

    public PgpPublicKey m_publicKey;
    public PgpPrivateKey m_privateKey;
    public string m_passPhrase;
    //cut out the irelevant parts

C'est la clé publique de la classe. Pas de constructeur sans paramètre.

public class PgpPublicKey
{
    public PgpPublicKey(PublicKeyAlgorithmTag algorithm, AsymmetricKeyParameter pubKey, DateTime time);
    //cut other methods
}
Faire votre propre classe de données pour sérialiser, copier les valeurs autour comme nécessaire
Pourquoi vous ne voulez pas de simplement ajouter sans paramètre constructeurs?

OriginalL'auteur Roger Bacon | 2013-03-04