草庐IT

SERIALIZATION

全部标签

c#流收到所有数据?

我正在使用C#.Net和System.Net.Sockets命名空间中的Socket类。我正在使用异步接收方法。我知道这可以通过网络服务之类的东西更容易地完成;这个问题是出于好奇而不是实际需要。我的问题是:假设客户端正在发送一些未知长度的二进制序列化对象。在带有套接字的服务器上,我如何知道已接收到整个对象并准备好进行反序列化?我考虑过在对象前面加上对象的字节长度,但这在.Net世界中似乎是不必要的。如果对象大于缓冲区会发生什么?我怎么知道,“嘿,因为对象太大,必须调整缓冲区大小”? 最佳答案 您或者需要协议(protocol)是自终

c# - 你如何让 System.Web.Script.javascriptSerializer 忽略一个属性?

[Serializable]publicclassModelResource:ISerializable{publicInt64Ore{get;privateset;}publicInt64Crystal{get;privateset;}publicInt64Hydrogen{get;privateset;}//needstobeignoredpublicInt64Total{get{returnOre+Hydrogen+Crystal;}}publicstringResourceType{get;privateset;}publicInt64HerculesNeeded{get{re

c# - ProtoBuf-Net 和 Compact Framework 出现 "Invalid field in source data: 0"错误

有人知道使用ProtoBuf-Net在紧凑框架和完整.Net框架之间进行序列化/反序列化时有任何问题吗?我有一个名为LogData的类,我正在compactframework3.5下序列化,传输到服务器(运行.Netframework4.0),然后反序列化。有时它有效,有时它会抛出上述错误,我还没有将其缩小到任何特定原因。我用不同的值做了很多测试,但似乎无法找到错误发生时的任何韵律或原因。我在下面包括我的类(class)(减去各种构造函数)。我已多次查看两侧的字节缓冲区,但尚未发现通过线路从一侧发送到另一侧的数据存在差异。[ProtoContract]publicclassLogDat

c# - 如何序列化 List<T>?

我有A类。B类和C类是A类的一部分。ClassA{//FewPropertiesofClassAListlist1=newList()Listlist2=newList()NsystemNotSystem{get;set;}//EnumPropertyType}publicenumNsystem{A=0,B=1,C=2}我想序列化A类并用它生成XML;我还想序列化list1和list2以及枚举...什么是序列化此XML的好方法,因为我需要将对象转换为XML并将XML转换为对象的功能...执行此操作有哪些好的选择?谢谢 最佳答案 您可

c# - 如何更改 DataContractSerializer 文本编码?

当写入流时,DataContractSerializer使用不同于Unicode-16的编码。如果我可以强制它写入/读取Unicode-16,我可以将它存储在SQLCE的binary列中并使用SELECTCONVERT(nchar(1000),columnName)读取它.但事实上,我无法阅读它,除非以编程方式阅读。我可以更改System.Runtime.Serialization.DataContractSerializer使用的编码吗? 最佳答案 DataContractSerializer的WriteObject方法具有写入到

c# - 使用 newtonsoft.json 反序列化 List<AbstractClass>

我正在尝试序列化和反序列化abstract类列表(mustinheritforvb),显然其中只有派生类的实例。我用JsonProperty(ItemTypeNameHandling=TypeNameHandling.Auto)修饰了列表参数,获得如下所示的输出:但是我反序列化的时候一直说他不能反序列化一个抽象类。http://james.newtonking.com/json/help/index.html?topic=html/SerializeTypeNameHandling.htmpublicclassConcreteClass{privateObservableCollect

c# - 删除发送到 Json MVC 的对象的空属性

namespaceBooking.Areas.Golfy.Models{publicclassTime{publicstringtime{get;set;}publicintholes{get;set;}publicintslots_available{get;set;}publicdecimal?price{get;set;}publicint?Nextcourseid{get;set;}publicboolShouldSerializeNextcourseid{get{returnthis.Nextcourseid!=null;}}publicbool?allow_extra{ge

c# - 我可以在运行时向对象属性添加属性吗?

例如,我想删除或更改以下属性属性或添加一个新属性。可能吗?[XmlElement("bill_info")][XmlIgnore]publicBillInfoBillInfo{get{returnbillInfo;}set{billInfo=value;}} 最佳答案 (编辑-我误读了原始问题)您不能添加实际属性(它们被嵌入到IL中);但是,对于XmlSerializer,您不必这样做-您可以在构造函数中为XmlSerializer提供额外的属性。但是,如果这样做,您确实需要小心缓存XmlSerializer实例,否则它会为每个实例

c# - 如何在 NHibernate 中克隆对象?

如何在NHibernate中实现对象(实体)的克隆?每个实体类都有这样的属性:publicvirtualIListClubs{get;set;}另外,实体类继承了BaseObject。我尝试使用XML序列化来实现解决方案,但无法序列化接口(interface)。感谢您的回答! 最佳答案 AutoMapperhttp://automapper.codeplex.com/解决了我的问题。例如,可以通过以下方式克隆业务对象:Mapper.CreateMap();varnewtransact=newTransaction();Mapper.

c# - 如何序列化/反序列化从另一个程序集加载的对象?

我想序列化/反序列化一个对象,该对象已被另一个从程序集中加载的对象实例化:Interfaces.cs(来自引用的程序集Interfaces.dll)publicinterfaceISomeInterface{ISettingsSettings{get;set;}}publicinterfaceISettings:ISerializable{DateTimeStartDate{get;}}SomeClass.cs(来自引用的程序集SomeClass.dll)publicclassSomeClass:ISomeInterface{privateMySettingssettings=newS