jjzjj

binaryformatter

全部标签

C# 对象二进制序列化

我想对一个对象进行二进制序列化,并将结果保存在数据库中。Personperson=newPerson();person.Name="something";MemoryStreammemorystream=newMemoryStream();BinaryFormatterbf=newBinaryFormatter();bf.Serialize(memorystream,person);如何将memorystream转换为字符串类型以保存在数据库中,然后才能反序列化对象? 最佳答案 您真正要求的是一种将任意二进制数据表示为文本然后再将其

c# - 在解析完成之前遇到流结束?

我正在尝试反序列化流,但我总​​是收到此错误“在解析完成之前遇到流结束”?代码如下://SomecodehereBinaryFormatterb=newBinaryFormatter();return(myObject)b.Deserialize(s);//s--->isaStreamobjectthathasbeenfillupwithdatasomelineoverhere有人有想法吗? 最佳答案 尝试将位置设置为流的0,并且不使用您的对象,而是使用对象类型。BinaryFormatterb=newBinaryFormatter

c# - 在解析完成之前遇到流结束?

我正在尝试反序列化流,但我总​​是收到此错误“在解析完成之前遇到流结束”?代码如下://SomecodehereBinaryFormatterb=newBinaryFormatter();return(myObject)b.Deserialize(s);//s--->isaStreamobjectthathasbeenfillupwithdatasomelineoverhere有人有想法吗? 最佳答案 尝试将位置设置为流的0,并且不使用您的对象,而是使用对象类型。BinaryFormatterb=newBinaryFormatter

c# - XmlSerializer 和 BinaryFormatter 之间有什么区别

上周我花了很多时间进行连载。在那段时间里,我发现了许多使用BinaryFormatter或XmlSerializer的示例。不幸的是,我没有找到任何示例来全面详细说明两者之间的区别。我的好奇心在于为什么BinaryFormatter能够直接反序列化为接口(interface),而XmlSerializer却不能。JonSkeet在对“castingtomultiple(unknowntypes)atruntime”的回答中提供了一个接口(interface)的直接二进制序列化示例。StanR.在他对“XMLObjectDeserializationtoInterface”的回答中为我提

c# - XmlSerializer 和 BinaryFormatter 之间有什么区别

上周我花了很多时间进行连载。在那段时间里,我发现了许多使用BinaryFormatter或XmlSerializer的示例。不幸的是,我没有找到任何示例来全面详细说明两者之间的区别。我的好奇心在于为什么BinaryFormatter能够直接反序列化为接口(interface),而XmlSerializer却不能。JonSkeet在对“castingtomultiple(unknowntypes)atruntime”的回答中提供了一个接口(interface)的直接二进制序列化示例。StanR.在他对“XMLObjectDeserializationtoInterface”的回答中为我提

c# - 有没有办法压缩内存中的对象并透明地使用它?

我目前正在构建一个处理大量数据的分析应用程序。典型情况如下所示:用户选择一个文件夹,其中包含大约600个测量文件,每个文件包含大约40.000到100.000个值。应用程序将这些值读入一个对象,该对象在内部用作数据缓存,因此不必在每次访问时都读取文件。这很好用,但我注意到内存消耗非常高,最终可能会变得太大。在我的测试中,当应用程序的内存消耗超过2GB的RAM时,应用程序崩溃了。保存数据的数据结构尽可能的简单,它基本上只是由一些字典组成,字典以2级嵌套的方式包含数据,没什么复杂的。我想知道是否有一种方便的方法可以将此对象以压缩形式存储在RAM中。我知道这会降低性能,但在我的情况下这是完全

c# - 有没有办法压缩内存中的对象并透明地使用它?

我目前正在构建一个处理大量数据的分析应用程序。典型情况如下所示:用户选择一个文件夹,其中包含大约600个测量文件,每个文件包含大约40.000到100.000个值。应用程序将这些值读入一个对象,该对象在内部用作数据缓存,因此不必在每次访问时都读取文件。这很好用,但我注意到内存消耗非常高,最终可能会变得太大。在我的测试中,当应用程序的内存消耗超过2GB的RAM时,应用程序崩溃了。保存数据的数据结构尽可能的简单,它基本上只是由一些字典组成,字典以2级嵌套的方式包含数据,没什么复杂的。我想知道是否有一种方便的方法可以将此对象以压缩形式存储在RAM中。我知道这会降低性能,但在我的情况下这是完全

c# - 用于序列化的 BinaryFormatter

我正在开发自己的远程桌面C#程序。我想知道我是否可以使用BinaryFormatter序列化我自己的对象例如包含BitMap屏幕截图、鼠标坐标和一些文本属性的“数据包”。然后客户端将反序列化它。从理论上讲,这可能是一种舒适的方式。可能吗? 最佳答案 BinaryFormatter不是通过网络序列化或永久存储的好选择,它是为在同一台机器内通信时的序列化而设计的。它极不能容忍在连接两端的序列化对象中引用的任何程序集的版本差异,我个人有一个Windows更新没有应用在一台机器上导致双方无法通信。而是使用更专为网络通信设计的序列化程序,如D

c# - 如何让 BinaryFormatter 在不同的应用程序中反序列化

我正在使用BinaryFormatter将一组类实例序列化到一个文件中。我可以在同一个应用程序中反序列化这个罚款。当我在不同的应用程序中尝试相同的反序列化(拉入一个完成工作的通用文件)时,我收到以下错误:{"Couldnotloadfileorassembly'pmlscan,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null'oroneofitsdependencies.Themodulewasexpectedtocontainanassemblymanifest."}其中pmlscan是原始应用程序的名称。如何让BinaryFor