Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在一个文件中序列化所有流_C#_Deserialization_Binaryformatter - Fatal编程技术网

C# 如何在一个文件中序列化所有流

C# 如何在一个文件中序列化所有流,c#,deserialization,binaryformatter,C#,Deserialization,Binaryformatter,假设我的文件有两个使用BinaryFormatter序列化的类。我需要使用(ClassName1)格式化程序。反序列化(文件) (ClassName2)格式化程序。反序列化(文件) 获取特定流并访问其数据。是否有任何方法显示文件中存在的所有类名?就像注释中所说的ClassName1、ClassName2一样,如果您正在寻找性能,您应该将类名保存在单独的文件中。 如果没有,则始终可以使用: string className = formatter.Deserialize(file).GetType

假设我的文件有两个使用BinaryFormatter序列化的类。我需要使用
(ClassName1)格式化程序。反序列化(文件)

(ClassName2)格式化程序。反序列化(文件)


获取特定流并访问其数据。是否有任何方法显示文件中存在的所有类名?就像注释中所说的
ClassName1、ClassName2

一样,如果您正在寻找性能,您应该将类名保存在单独的文件中。 如果没有,则始终可以使用:

string className = formatter.Deserialize(file).GetType().Name

这将返回类名
ClassName1
ClassName2

,您需要保存此数据。在任何情况下,如果将所有序列化的类存储在同一个文件中,则需要知道每个类字节的开始和结束位置。一种方法是使用一个单独的索引文件来保存这些数据。