草庐IT

Serialization

全部标签

c# - 将 C# 枚举定义序列化为 Json

在C#中给出以下内容:[Flags]publicenumMyFlags{None=0,First=1ServiceStack.Text中是否有任何现有方法可序列化为以下JSON?{"MyFlags":{"None":0,"First":1,"Second":2,"Third":4,"Fourth":8}}目前我正在使用下面的例程,有更好的方法吗?publicstaticstringToJson(thisTypetype){varstringBuilder=newStringBuilder();Arrayvalues=Enum.GetValues(type);stringBuilder.

c# - 动态对象序列化

我试图用BinaryFormatter序列化一个DynamicObject类,但是:输出文件太大,不适合连线未处理循环引用(序列化时卡住)由于序列化DynamicObject本身意义不大,下面是我尝试序列化的类:[Serializable()]classEntity:DynamicObject,ISerializable{IDictionaryvalues=newDictionary();publicEntity(){}protectedEntity(SerializationInfoinfo,StreamingContextctx){stringfieldName=string.Em

c# - 动态对象序列化

我试图用BinaryFormatter序列化一个DynamicObject类,但是:输出文件太大,不适合连线未处理循环引用(序列化时卡住)由于序列化DynamicObject本身意义不大,下面是我尝试序列化的类:[Serializable()]classEntity:DynamicObject,ISerializable{IDictionaryvalues=newDictionary();publicEntity(){}protectedEntity(SerializationInfoinfo,StreamingContextctx){stringfieldName=string.Em

c# - BinaryFormatter.Deserialize 如何创建新对象?

当BinaryFormatter将流反序列化为对象时,它似乎是在不调用构造函数的情况下创建新对象。这是怎么做到的?为什么?.NET中还有其他任何东西可以做到这一点吗?这是一个演示:[Serializable]publicclassCar{publicstaticintconstructionCount=0;publicCar(){constructionCount++;}}publicclassTest{publicstaticvoidMain(string[]args){//ConstructacarCarcar1=newCar();//Serializeandthendeseria

c# - BinaryFormatter.Deserialize 如何创建新对象?

当BinaryFormatter将流反序列化为对象时,它似乎是在不调用构造函数的情况下创建新对象。这是怎么做到的?为什么?.NET中还有其他任何东西可以做到这一点吗?这是一个演示:[Serializable]publicclassCar{publicstaticintconstructionCount=0;publicCar(){constructionCount++;}}publicclassTest{publicstaticvoidMain(string[]args){//ConstructacarCarcar1=newCar();//Serializeandthendeseria

c# - 反序列化期间未找到构造函数?

给定以下示例:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Runtime.Serialization.Formatters.Binary;usingSystem.IO;namespaceSerializationTest{[Serializable]classFoo:Dictionary{}classProgram{staticvoidMain(string[]args){Foofoo=newFoo();foo[1]="Left";foo[2]="Ri

c# - 反序列化期间未找到构造函数?

给定以下示例:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Runtime.Serialization.Formatters.Binary;usingSystem.IO;namespaceSerializationTest{[Serializable]classFoo:Dictionary{}classProgram{staticvoidMain(string[]args){Foofoo=newFoo();foo[1]="Left";foo[2]="Ri

c# - 将对象列表写入文件

我有一个类推销员,格式如下:classsalesman{publicstringname,address,email;publicintsales;}我有另一个类,用户可以在其中输入姓名、地址、电子邮件和销售额。然后将此输入添加到列表中ListsalesmanList=newList();在用户向列表中输入任意数量的销售人员后,他们可以选择将列表保存到他们选择的文件中(我可以将其限制为.xml或.txt(哪个更合适)).我如何将此列表添加到文件中?此外,如果用户希望稍后查看记录,则需要将此文件重新读回到列表中。 最佳答案 像这样的东

c# - 将对象列表写入文件

我有一个类推销员,格式如下:classsalesman{publicstringname,address,email;publicintsales;}我有另一个类,用户可以在其中输入姓名、地址、电子邮件和销售额。然后将此输入添加到列表中ListsalesmanList=newList();在用户向列表中输入任意数量的销售人员后,他们可以选择将列表保存到他们选择的文件中(我可以将其限制为.xml或.txt(哪个更合适)).我如何将此列表添加到文件中?此外,如果用户希望稍后查看记录,则需要将此文件重新读回到列表中。 最佳答案 像这样的东

c# - 如果基类被标记为可序列化,所有子类也被标记了吗?

我有一个完整的实体类列表,我需要将其设置为可序列化(由于在SQL中存储session状态,但这是另一回事)。我已经添加了[Serializable]属性,一切似乎都很好。我所有的实体类都继承自同一个基类。如果我将基类标记为可序列化,这是否意味着所有子类也都标记为可序列化?谢谢 最佳答案 不,属性不被继承。当您扩展类时,可能会添加本质上不可序列化的功能,因此.NETFramework不能为您假设扩展可序列化基类的所有内容也是可序列化的。这就是为什么您必须在每个类上分别显式声明[Serializable]属性。