다음 문서에서는 C# 직렬화에 대한 개요를 제공합니다. 객체 인스턴스가 데이터 스트림으로 변환되는 과정을 직렬화(serialization)라고 하며 객체 인스턴스의 상태는 저장 위치에 지속되도록 만들어진 다양한 네트워크를 통해 전송될 수 있기 때문에 데이터 스트림으로 변환됩니다. 이는 변환된 데이터 스트림을 크로스 플랫폼에서 호환되는 형식으로 서로 다른 네트워크를 통해 전송하고, 변환된 스트림 데이터를 영구 또는 비영구 객체 상태로 저장 매체에 저장하여 동일한 복사본이 가능하도록 하는 직렬화의 장점으로 작용합니다. 나중에 만들어졌습니다.
다음은 C# 직렬화 개체의 단계입니다.
[ 직렬화 가능 ] 클래스를 보여주는 예제 클래스:
코드:
[Serializable] public class Check { public int code; public string name; }
[ NonSerialized() ] 속성을 보여주기 위해 아래 예제 클래스를 고려하세요.
코드:
[Serializable] public class Check { public int code; public string name; [NonSerialized()] Public double price; }
다음은 C#에서 지원하는 직렬화 유형입니다.
XmlAttribute 사용을 보여주기 위해 아래 코드를 고려하세요.
코드:
[XmlAttribute("Name")] public string Name { get { return Name; } set { Name = val; } }
XmlSerializer 사용을 보여주기 위해 아래 코드를 고려하십시오.
코드:
XmlSerializer Serializer = new XmlSerializer(typeof(Prod)); using (TextWriter Writer = new StreamWriter(@"C:\Prod.xml")) { xmlSerializer.Serialize(Writer, prodObject); }
ISerialized 인터페이스를 구현하여 사용자 정의 직렬화를 시연하려면 아래 코드를 고려하세요.
코드:
[Serializable] public class Prod : ISerializable { public void GetObjectData(SerializationInfo information, StreamingContext cont) { //Usual code } }
아래는 C# 직렬화의 예입니다.
직렬화 개념을 보여주는 C# 프로그램
코드:
using System; using System.IO; using System.Linq; using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters.Binary; using System.Text; using System.Threading.Tasks; //a namespace called demo is created namespace Demo { //Serializable attribute is declared [Serializable] //a class check is defined which will be used for serialization class Check { public int identity; public String nam; static void Main(string[] args) { //an object of the check class is created to serialize it to the file Example.txt Check ob = new Check(); ob.identity = 10; ob.nam = "Shobha"; //a file stream is created IFormatter format = new BinaryFormatter(); Stream stream1 = new FileStream(@"E:\Example.txt",FileMode.Create,FileAccess.Write); //serialization of the object of the class check is done format.Serialize(stream1, ob); stream1.Close(); //a file stream is created stream1 = new FileStream(@"E:\Example.txt",FileMode.Open,FileAccess.Read); //the object of the class check is deserialized Check ob1 = (Check)format.Deserialize(stream1); //the data is written to the console Console.WriteLine(ob1.identity); Console.WriteLine(ob1.nam); Console.ReadKey(); } } }
Output:
In the above program, a namespace called demo is defined. Then a Serializable attribute is defined. A class check is defined to demonstrate the concept of serialization using this class. Two properties identity and nam are defined in the class to which the values 10 and Shobha are assigned respectively. Then an object of the check class is created to serialize it to the file Example.txt. Then a formatter class is defined to convert the object of the class check to a binary stream.
Then a file stream object is created to open the file Example.txt in write mode to write the values of the properties identity and nam into it. Then serialize method is used to transfer the binary data into the text file. Finally, We use deserialize method to deserialize the contents of the text file Example.txt and the data is written to the console as shown in the output snapshot above.
위 내용은 C# 직렬화의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!