次の記事では、C# シリアル化の概要を説明します。オブジェクト インスタンスがデータ ストリームに変換されるプロセスはシリアル化と呼ばれ、オブジェクト インスタンスの状態は、ストレージの場所に永続化されるさまざまなネットワーク間で転送できるため、データ ストリームに変換されます。これは、変換されたデータ ストリームをクロス プラットフォームで互換性のある形式で異なるネットワーク間で送信するシリアル化の利点として機能し、変換されたストリーム データを永続または非永続オブジェクトの状態でストレージ媒体に保存するため、同じコピーを作成できます。後の時代に作成されました。
以下は 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); }
ISerializable インターフェイスを実装してカスタム シリアル化をデモンストレーションするには、以下のコードを検討してください。
コード:
[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 中国語 Web サイトの他の関連記事を参照してください。