मैं 3 अलग-अलग क्रिप्टोग्राफी कक्षाओं के लिए एक कारखाना पैटर्न लागू कर रहा हूं। कारखाना निर्धारित करेगा कि कौन सा निर्माण करना है और फिर डेटाबेस से सही वर्ग का क्रमबद्ध उदाहरण प्राप्त करें और इसे अनुरोधकर्ता को वापस कर दें। अभी मैं डेटाबेस में उन्हें स्टोर करने के लिए कक्षाओं को क्रमबद्ध करने पर काम कर रहा हूं। मैं एक पीजीपी क्रिप्टोग्राफी कक्षा के लिए एक लिख रहा हूं जिसे BouncyCastle
कहा जाता है। मैं फ़ाइलों से कक्षा और चाबियाँ बना सकता हूं लेकिन जब मैं इसे क्रमबद्ध करने का प्रयास करता हूं, तो यह कहता है कि दो सदस्य चर, जो वर्ग PgpPublicKey
की कक्षाएं हैं, और 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
यह सार्वजनिक कुंजी वर्ग है। कोई पैरामीटर रहित कन्स्ट्रक्टर नहीं। यह एक खाली नया उदाहरण बनाने deserializing जबकि
public class PgpPublicKey
{
public PgpPublicKey(PublicKeyAlgorithmTag algorithm, AsymmetricKeyParameter pubKey, DateTime time);
// cut other methods
}
क्रमबद्ध करने के लिए अपनी खुद की डेटा क्लास बनाएं, आवश्यकतानुसार मूल्यों की प्रतिलिपि बनाएँ –
आप पैरामीटर रहित कन्स्ट्रक्टर क्यों नहीं जोड़ना चाहते हैं? – Restuta