Próbuję utworzyć odszyfrowaną klasę odczytu strumienia plików (DFSR), dzieląc podklasy StreamReader, tak aby móc przekazać nazwę pliku z encrpytowanymi informacjami do jego konstruktora (DFSR) i powrócić za pomocą obiektu streamReader, który Mogę wywołać metodę ReadLine StreamReadera.Podklasa StreamReader do utworzenia odszyfrowania Czytnik strumienia plików
Wiem, jak to zrobić, jak poniżej, ale nie wiem, jak refractor go do klasy z StreamReader jako klasa nadrzędna.
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);
}
}
}
}
}
To byłoby nadużycie dziedzictwo. Powinieneś tylko użyć zwykłego StreamReadera, ale poprawnie zainicjowanego, aby używać CryptoStream. Zasadniczo, tak jak twój kod jest teraz zbudowany. Możesz umieścić to wszystko w metodzie pomocnika. Dziedziczenie nie dodaje tutaj żadnej wartości. Jeśli nalegasz na dziedziczenie z czegoś, dziedzicz z TextReader i zawiń prawidłowo zainicjowany StreamReader. – usr
Zgadzam się z @usr, że powinieneś używać System.Security.Cryptography.CryptoStream, ponieważ już dziedziczy z System.IO.Stream. –