我正在为 3 个不同的密码学类实现工厂模式。工厂将确定创建哪个类,然后从数据库中获取正确类的序列化实例并将其返回给请求者。现在我正在序列化这些类以将它们存储在数据库中。我正在为一个名为BouncyCastle
. 我可以从文件中创建类和键,但是当我尝试序列化它时,它说两个成员变量,它们是 classPgpPublicKey
和的对象PgpPrivateKey
,不能序列化,因为它们没有无参数的构造函数。
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();
}
该类有两个成员变量是问题所在。
public class BouncyCastle : ICryptographyProvider
{
public PgpPublicKey m_publicKey;
public PgpPrivateKey m_privateKey;
public string m_passPhrase;
// cut out the irelevant parts
这是公钥类。没有无参数的构造函数。
public class PgpPublicKey
{
public PgpPublicKey(PublicKeyAlgorithmTag algorithm, AsymmetricKeyParameter pubKey, DateTime time);
// cut other methods
}