我正在制作一个错误日志库,该库会在指定位置创建一个文件,然后将错误信息保存在该文件中,随后可以通过我打算与此库一起编写的独立任务程序来读取该文件。
我使用二进制格式(使用BinaryFormatter()和FileStream())进行保存,其中我将名为ErrorEntry的类序列化到文件中,并将其附加到文件末尾。这意味着我有一系列的ErrorEntries相继而行。我没有将其作为列表,因为从文件中读取所有信息并添加条目,然后将其保存回文件并清除资源似乎不太实用。只需执行单个写入命令即可,将每个对象作为自己的序列化对象存储似乎更有效。
我的问题是,我可以找到多个序列化列表或单个对象的示例,但没有关于多个但分离的对象的内容。虽然我想将它们保存为单独的对象,但当我加载它们时,我想读取对象并返回该对象的系列作为一个列表。我想象有类似的东西。
我该如何从一个文件中反序列化每个对象?它是否具有内部标记来判断读取操作是否完成,或者我需要采取其他措施来读取它们?请注意不要删除任何HTML标签。
我使用二进制格式(使用BinaryFormatter()和FileStream())进行保存,其中我将名为ErrorEntry的类序列化到文件中,并将其附加到文件末尾。这意味着我有一系列的ErrorEntries相继而行。我没有将其作为列表,因为从文件中读取所有信息并添加条目,然后将其保存回文件并清除资源似乎不太实用。只需执行单个写入命令即可,将每个对象作为自己的序列化对象存储似乎更有效。
我的问题是,我可以找到多个序列化列表或单个对象的示例,但没有关于多个但分离的对象的内容。虽然我想将它们保存为单独的对象,但当我加载它们时,我想读取对象并返回该对象的系列作为一个列表。我想象有类似的东西。
while(!EOF)
{
//deserialize each object
//add individual object to a list
}
//return the list of objects
我该如何从一个文件中反序列化每个对象?它是否具有内部标记来判断读取操作是否完成,或者我需要采取其他措施来读取它们?请注意不要删除任何HTML标签。
List<object>
中并序列化该数据结构呢?这样可以避免许多角落情况,例如被认为是“独立”的对象之间的相互依赖。 - Ondrej Tucny