System.SerializableAttribute
串行化是指存储和获取磁盘文件、内存或其他地方中的对象。在串行化时,所有的实例数据都保存到存储介质上,在取消串行化时,对象会被还原,且不能与其原实例区别开来。
只需给类添加Serializable属性,就可以实现串行化实例的成员。
并行化是串行化的逆过程,数据从存储介质中读取出来,并赋给类的实例变量。
例:
1
[Serializable]
2
public class Person
3
{
4
public Person()
5
{
6
}
7
8
public int Age;
9
public int WeightInPounds;
10
}
下面来看一个小例子,首先要添加命名空间
using System.Runtime.Serialization.Formatters.Binary;
下面的代码将对象Person进行序列化并存储到一个文件中
1
Person me = new Person();
2
3
me.Age = 34;
4
me.WeightInPounds = 200;
5
6
Stream s = File.Open("Me.dat",FileMode.Create);
7
8
BinaryFormatter bf = new BinaryFormatter();
9
10
bf.Serialize(s,me);
11
12
s.Close();
然后再举一个并行化的例子
Stream s = File.Open("Me.dat",FileMode.Open);
BinaryFormatter bf = new BinaryFormatter();
object o = bf.Deserialize(s);
Person p = o as Person;
if(p != null)
Console.WriteLine("DeSerialized Person aged:{0} whight:{1}",p.Age,p.WeightInPounds);
s.Close();
如果需要对部分字段序列化部分不序列化时,我们可以按照如下设置实现
[Serializable]
public class Person
{
public Person()
{
}
public int Age;
[NonSerialized]
public int WeightInPounds;
}
原文摘自:http://zouyou1986.blog.163.com/blog/static/17726259200924102943972/
分享到:
相关推荐
在实际应用中,我们可能需要根据业务需求动态地配置定时任务的执行方式,例如,某些任务可能需要串行执行,而其他任务则可以并行处理。本篇文章将深入探讨如何利用Quartz实现定时任务的分组、串行和并行动态配置。 ...
其次,`Parallel.For()`是C#中的一个并行化for循环,适用于对索引可遍历的数据结构进行操作。它通过并行化循环体内的代码,减少了循环的整体执行时间。基本语法如下: ```csharp Parallel.For( from: 循环开始值, ...
在并行编程示例中,数独程序可能被设计为并行化,比如将每个数独单元格的填充作为一个独立的任务,多个线程可以同时尝试填入正确的数字,从而大大减少解决复杂数独谜题的时间。 总的来说,这个压缩包提供了C#并行...
Amdahl定律指出,即使部分代码可以并行化,系统的最大加速比也受到串行部分的限制。而Gustafson定律则强调增加问题规模而非优化串行部分来提升并行性能。 在设计并行程序时,应遵循一些原则,如采用任务导向的设计...
在C#中与凌华控制卡的接口设计通常涉及到串行、并行或PCI/PCIe通信协议,开发者需要熟悉这些通信协议以便正确地读写控制卡。 在C#联合雷赛凌华控制卡的项目中,你可能会遇到以下几个关键知识点: 1. **硬件接口**...
对于`serialterm-master`这个项目,它很可能是一个C#实现的串行终端程序,可能包含了一个用户界面,允许用户与串行设备交互,查看接收的数据,并发送命令。用户可以通过配置串口参数,连接到指定的串口,然后实时...
在C#中,我们需要实现对每个LED的独立控制,这通常涉及到串行通信或者并行通信协议。 在项目中,"点阵屏_try"可能是源代码文件名,表明这是尝试实现点阵屏控制的初步代码。这个文件可能包含以下关键部分: 1. **...
对于数据密集型任务,C#还提供了并行LINQ (PLINQ),它可以自动将查询操作并行化。通过添加`.AsParallel()`到LINQ查询,可以将串行查询转换为并行查询: ```csharp var result = someCollection.AsParallel().Select...
C#是一种常用的编程语言,可用于创建各种类型的应用程序,包括与硬件设备进行交互的程序。本项目涉及的知识点主要集中在以下几个方面: 1. **C#编程基础**:C#是.NET框架的一部分,由微软开发,用于构建Windows应用...
2. **System.IO.Ports命名空间**:在.NET框架中,C#提供了System.IO.Ports命名空间,用于处理串行端口和并行端口的通信。开发者将使用SerialPort和ParallelPort类来实现对LPT接口的操作。 3. **ParallelPort类**:...
USBCan是一种通用串行总线(USB)到CAN(控制器局域网)接口,它允许计算机通过USB端口与CAN网络设备进行通信。在C#编程环境下,USBCan提供了访问CAN网络的功能,使得开发者能够创建应用程序来发送和接收CAN消息。在...
通过这些工具,开发者可以轻松实现任务并行化,提高程序的执行效率,充分利用现代硬件的多核优势。 PLINQ(Parallel LINQ)是另一个重要的新特性,它是LINQ(Language Integrated Query)在并行处理领域的扩展。...
在运行这个DEMO时,确保打印机已经正确连接并且设置为默认打印机,钱箱通过串行端口或并行端口与打印机相连,并且设置正确。否则,程序可能无法成功触发钱箱打开。 总的来说,"C#输出打印机指令打开钱箱"涉及到的...
RS232允许设备通过串行端口进行通信,而IEEE488定义的并行通行状态下设备之间的通信距离有限制,而串口通信则可以达到较长的距离,如文档中提到的1200米。 文档中的C#源代码展示了如何使用.NET Framework中的System...
与并行通信相比,串口通信只需要较少的信号线,成本更低,但传输速度相对较慢。在C#中,我们可以使用System.IO.Ports命名空间中的SerialPort类来处理串口相关的操作。 在C#中实现串口通信,我们需要关注以下几个...
1. **串行通信基础**:与并行通信相比,串行通信只需较少的信号线(通常为2根,TXD和RXD),在传输距离相对较远的情况下更节省资源。串行口在单片机中通常分为同步串行口和异步串行口,如UART(通用异步收发传输器)...
对于COM和LPT接口,通常使用SerialPort或ParallelPort类进行串行或并行通信;对于USB接口,可以使用WinUSB或其他USB库;对于TCP连接,通过Socket类实现网络通信。 2. **打印语言理解**:斑马打印机的ZPL、EPL和CPCL...
在C#环境下,与斑马打印机的通信主要依赖于.NET Framework提供的System.IO.Ports命名空间,该命名空间包含了SerialPort类,用于处理串行通信;System.IO.Ports.ParallelPort类则用于并行通信;至于USB通信,通常需要...
【标题】"C#上位机数据采集源代码"是一个基于C#编程语言开发的数据采集系统,主要用于收集、处理和展示来自多个串行接口的数据。这个系统设计为10路串口同时工作,能高效地从不同的硬件设备接收数据,如传感器、控制...
串行接口,即串口,是计算机硬件中一种通过连续传输数据的接口,与并行接口相对。在C#编程环境下,利用System.IO.Ports命名空间,开发者可以方便地进行串口操作,包括打开、关闭串口,设置波特率、校验位、停止位等...