Ich versuche eine entschlüsselte File stream reader (DFSR) -Klasse durch Unterklasse von StreamReader zu erstellen, damit ich den Dateinamen mit encrpyted info an seinen (DFSR) -Konstruktor übergeben und mit dem streamReader zurückgeben kann Ich kann die ReadLine-Methode von StreamReader aufrufen.Unterklasse StreamReader zum Entschlüsseln Dateistream Reader
Ich weiß, wie es geht, wie unten, aber ich weiß nicht, wie man es in eine Klasse mit StreamReader als Elternklasse refractor.
using (Rijndael rijAlg = Rijndael.Create())
{
rijAlg.Key = DX_KEY_32;
rijAlg.IV = DX_IV_16;
// Create a decrytor to perform the stream transform.
using (FileStream fs = File.Open("test.crypt", FileMode.Open))
{
using (CryptoStream cs = new CryptoStream(fs, rijAlg.CreateDecryptor(), CryptoStreamMode.Read))
{
using (StreamReader sr = new StreamReader(cs))
{
string line;
// Read and display lines from the file until the end of
// the file is reached.
while ((line = sr.ReadLine()) != null)
{
Console.WriteLine(line);
}
}
}
}
}
Das ist ein Missbrauch wäre von Erbe. Was Sie tun sollten, ist, nur den regulären StreamReader zu verwenden, aber ordnungsgemäß initialisiert, um einen CryptoStream zu verwenden. Im Prinzip, genauso wie Ihr Code gerade strukturiert ist. Sie können all das in eine Hilfsmethode einfügen. Vererbung fügt hier keinen Wert hinzu. Wenn Sie darauf bestehen, von etwas zu erben, erben Sie von TextReader und verpacken Sie einen ordnungsgemäß initialisierten StreamReader. – usr
Vereinbaren Sie mit @usr, dass Sie System.Security.Cryptography.CryptoStream verwenden sollten, da es bereits von System.IO.Stream erbt. –