Tworzę bibliotekę do rejestrowania błędów, która tworzy plik w określonej lokalizacji, a następnie zapisuje informacje o błędzie w tym pliku, które mogą być następnie odczytywane przez osobny program, który zamierzam napisać w połączeniu z tą biblioteką.Serializacja i Deserializacja wielu obiektów
Sposób, że jestem zapisując go w formacie binarnym (przy użyciu BinaryFormatter()
i FileStream()
), gdzie i serializowania klasy o nazwie ErrorEntry do pliku i dołączyć go do końca pliku. Oznacza to, że mam serię ErrorEntries z powrotem do tyłu. Nie mam go jako listy, ponieważ nie wydaje mi się, że trzeba przeczytać wszystkie informacje na liście z pliku, dodać wpis, a następnie zapisać go z powrotem w pliku i zrzucić zasoby. Wydaje się znacznie skuteczniejsze, aby wykonać tylko jedno polecenie zapisu, a po prostu przechowywać każdy jako swój własny obiekt, który jest serializowany.
Moim problemem jest to, że mogę znaleźć kilka przykładów na serializowanie list lub pojedynczych obiektów, ale nic na wielu - ale osobnych - obiektach. Chociaż chcę zapisać je jako pojedyncze obiekty, po ich załadowaniu chcę odczytać obiekt i zwrócić serię jako listę tego obiektu. Wyobrażam sobie, że jest coś podobnego do Jak mam zamiar deserializować każdy obiekt z jednego pliku? Czy ma wewnętrzny znacznik, który działa powyżej i po prostu muszę wykryć, czy to koniec pliku, czy też muszę zrobić coś innego, aby je przeczytać?
Dlaczego nie można po prostu umieścić wszystkie te obiekty do listy ''
@OndrejTucny chce dołączyć do pliku bez ładowania wszystkich poprzednich wpisów. – weston
Powiedział, dlaczego i wygląda na rozsądne. Aby deserializować na poziomie obiektu, musisz napisać sekwencję separatora po każdym wpisie i reagować na nią po przeczytaniu pliku z powrotem. – Tommi