उदाहरण के साथ C# में क्रमांकन और क्रमांकन
⚡ स्मार्ट सारांश
C# में सीरियलाइज़ेशन किसी ऑब्जेक्ट को बाइट्स की स्ट्रीम में परिवर्तित करता है ताकि उसे फ़ाइल में सहेजा जा सके या विभिन्न एप्लिकेशनों के बीच भेजा जा सके; डीसीरियलाइज़ेशन ऑब्जेक्ट को पुनः निर्मित करता है। यहाँ आप उदाहरणों के साथ ऑब्जेक्ट को सीरियलाइज़ और डीसीरियलाइज़ करना सीखेंगे।

C# में क्रमांकन और क्रमांकन
ऑब्जेक्ट से संबंधित डेटा को एक एप्लिकेशन से दूसरे एप्लिकेशन में भेजने के लिए सीरियलाइज़ेशन और डीसीरियलाइज़ेशन की अवधारणा का उपयोग किया जाता है। सीरियलाइज़ेशन का उपयोग एप्लिकेशन डेटा को एक फ़ाइल में निर्यात करने के लिए किया जाता है। गंतव्य एप्लिकेशन फिर डीसीरियलाइज़ेशन का उपयोग करके डेटा को पुनः प्राप्त करता है।tracआगे उपयोग के लिए आवेदन से प्राप्त डेटा।
सीरियलाइजेशन एक अवधारणा है जिसमें C# क्लास ऑब्जेक्ट को फ़ाइलों में लिखा या सीरियलाइज़ किया जाता है। मान लीजिए कि आपके पास ट्यूटोरियल नामक एक C# क्लास है। और क्लास में ID और ट्यूटोरियल नाम की 2 प्रॉपर्टी हैं।
सीरियलाइज़ेशन का उपयोग ट्यूटोरियल क्लास के डेटा गुणों को सीधे फ़ाइल में लिखने के लिए किया जा सकता है। डिसेरियलाइज़ेशन का उपयोग फ़ाइल से डेटा पढ़ने और ट्यूटोरियल ऑब्जेक्ट को फिर से बनाने के लिए किया जाता है।
C# में सीरियलाइज़ेशन के प्रकार
C# कई सीरियलाइज़ेशन फॉर्मेट को सपोर्ट करता है, और आप डेटा के उपयोग के स्थान के आधार पर उनमें से एक का चयन करते हैं। मुख्य प्रकार नीचे सूचीबद्ध हैं।
- बाइनरी सीरियलाइज़ेशन यह किसी ऑब्जेक्ट को कॉम्पैक्ट बाइनरी स्ट्रीम में परिवर्तित करता है। यह तेज़ है लेकिन मानव-पठनीय नहीं है और .NET से जुड़ा हुआ है।
- XML सीरियलाइज़ेशन यह XmlSerializer क्लास का उपयोग करके किसी ऑब्जेक्ट के सार्वजनिक गुणों को पठनीय XML फ़ाइल में लिखता है।
- JSON सीरियलाइज़ेशन यह वेब एपीआई के लिए सबसे आम प्रारूप, हल्के JSON का उत्पादन करने के लिए System.Text.Json या Newtonsoft.Json का उपयोग करता है।
- SOAP सीरियलाइज़ेशन यह पुराने वेब सेवाओं के लिए डेटा को SOAP संदेशों के रूप में प्रारूपित करता है।
C# में किसी ऑब्जेक्ट को सीरियलाइज़ कैसे करें
आइये एक उदाहरण देखें कि हम इसे कैसे प्राप्त कर सकते हैं।
हमारे उदाहरण में, हम कोड में नीचे दिए गए उच्च-स्तरीय चरणों का पालन करने जा रहे हैं
- ट्यूटोरियल नामक एक क्लास बनाएं जिसमें 2 गुण हों, अर्थात् आईडी, और नाम
- फिर हम क्लास से एक ऑब्जेक्ट बनाएंगे और ID प्रॉपर्टी को “1” का मान और name प्रॉपर्टी को “.Net” का मान देंगे।
- फिर हम उपरोक्त ऑब्जेक्ट को Example.txt नामक फ़ाइल में क्रमबद्ध करने के लिए क्रमांकन का उपयोग करेंगे
- अंत में, हम फ़ाइल से ऑब्जेक्ट को डीसेरिएलाइज़ करने और कंसोल में मान प्रदर्शित करने के लिए डीसेरिएलाइज़ेशन का उपयोग करेंगे।
कंसोल एप्लिकेशन की program.cs फ़ाइल में नीचे दिया गया कोड दर्ज करें।
चरण 1) कक्षा जोड़ें.
पहला चरण वह वर्ग जोड़ना है जिसका उपयोग क्रमांकन के लिए किया जाएगा
Code स्पष्टीकरण: -
- जिस क्लास को सीरियलाइज़ किया जाना है, उसमें [Serializable] विशेषता होनी चाहिए। यह C# में एक कीवर्ड है। यह कीवर्ड फिर ट्यूटोरियल क्लास से जुड़ा होता है। यदि आप इस विशेषता का उल्लेख नहीं करते हैं, तो क्लास को सीरियलाइज़ करने का प्रयास करते समय आपको एक त्रुटि मिलेगी।
- अगला चरण उस क्लास की परिभाषा है जिसे सीरियलाइज़ किया जाएगा। यहाँ हम “ट्यूटोरियल” नामक एक क्लास को परिभाषित कर रहे हैं और 2 गुण प्रदान कर रहे हैं, एक “आईडी” और दूसरा “नाम” है।
चरण 2) ऑब्जेक्ट बनाएं.
इस चरण में, सबसे पहले हम ट्यूटोरियल क्लास का ऑब्जेक्ट बनाएंगे और उसे Example.txt नामक फ़ाइल में क्रमबद्ध करेंगे
Code स्पष्टीकरण: -
- सबसे पहले, हम ट्यूटोरियल क्लास का एक ऑब्जेक्ट बनाते हैं। फिर हम ID को “1” और नाम प्रॉपर्टी को “.net” का मान देते हैं।
- फिर हम फ़ॉर्मेटर क्लास का उपयोग करते हैं जिसका उपयोग ऑब्जेक्ट को बाइनरी फ़ॉर्मेट में सीरियलाइज़ या कन्वर्ट करने के लिए किया जाता है। सीरियलाइज़ेशन में फ़ाइल में डेटा बाइनरी फ़ॉर्मेट में किया जाता है। इसके बाद, हम एक फ़ाइल स्ट्रीम ऑब्जेक्ट बनाते हैं। फ़ाइल स्ट्रीम ऑब्जेक्ट का उपयोग लेखन उद्देश्यों के लिए फ़ाइल Example.txt को खोलने के लिए किया जाता है। FileMode.Create और FileMode.Write कीवर्ड का उपयोग विशेष रूप से यह उल्लेख करने के लिए किया जाता है कि फ़ाइल को लेखन उद्देश्यों के लिए खोला जाना चाहिए।
- अंत में, हम बाइनरी डेटा को फ़ाइल में स्थानांतरित करने के लिए Serialize विधि का उपयोग करते हैं। फिर हम स्ट्रीम को बंद कर देते हैं, क्योंकि लेखन आपरेशन पूरा है।
चरण 3) विक्रमीकरण का उपयोग करें.
अंततः यह सुनिश्चित करने के लिए कि डेटा फ़ाइल में मौजूद है, हम फ़ाइल से ऑब्जेक्ट को डीसेरिएलाइज़ करने के लिए डीसेरिएलाइज़ेशन का उपयोग करते हैं।
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; namespace DemoApplication { [Serializable] class Tutorial { public int ID; public String Name; static void Main(string[] args) { Tutorial obj = new Tutorial(); obj.ID = 1; obj.Name = ".Net"; IFormatter formatter = new BinaryFormatter(); Stream stream = new FileStream(@"E:\ExampleNew.txt",FileMode.Create,FileAccess.Write); formatter.Serialize(stream, obj); stream.Close(); stream = new FileStream(@"E:\ExampleNew.txt",FileMode.Open,FileAccess.Read); Tutorial objnew = (Tutorial)formatter.Deserialize(stream); Console.WriteLine(objnew.ID); Console.WriteLine(objnew.Name); Console.ReadKey(); } } }
Code स्पष्टीकरण: -
- हम वस्तु बनाते हैं “धाराExample.txt फ़ाइल को केवल पढ़ने के लिए खोलने के लिए ” दबाएँ।
- फिर हम फ़ॉर्मेटर क्लास का उपयोग करते हैं जिसका उपयोग ऑब्जेक्ट को डीसेरीलाइज़ करने के लिए किया जाता है, जिसे Example.txt फ़ाइल में संग्रहीत किया जाता है। लौटाए गए ऑब्जेक्ट को ऑब्जेक्ट objnew पर सेट किया जाता है।
- अंत में, हम “ID” और “name” गुणों का उपयोग करके कंसोल पर ऑब्जेक्ट “objnew” के गुण प्रदर्शित करते हैं।
जब उपरोक्त कोड सेट किया जाता है, और प्रोजेक्ट का उपयोग करके चलाया जाता है विजुअल स्टूडियो, आपको नीचे दिया गया आउटपुट मिलेगा।
आउटपुट: -
आप उपरोक्त आउटपुट से देख सकते हैं कि फ़ाइल से मान ठीक से विक्रमबद्ध किए गए थे और कंसोल में प्रदर्शित किए गए थे।
C# में JSON सीरियलाइज़ेशन
JSON आधुनिक अनुप्रयोगों और वेब API के लिए सबसे व्यापक रूप से उपयोग किया जाने वाला प्रारूप है। System.Text.Json नेमस्पेस एक ही मेथड कॉल के माध्यम से ऑब्जेक्ट्स को सीरियलाइज़ और डीसीरियलाइज़ करता है, जैसा कि नीचे दिखाया गया है।
using System; using System.Text.Json; namespace DemoApplication { class Tutorial { public int ID { get; set; } public string Name { get; set; } } class Program { static void Main(string[] args) { Tutorial obj = new Tutorial { ID = 1, Name = ".Net" }; string json = JsonSerializer.Serialize(obj); Console.WriteLine(json); Tutorial objnew = (Tutorial)JsonSerializer.Deserialize(json, typeof(Tutorial)); Console.WriteLine(objnew.Name); Console.ReadKey(); } } }
आउटपुट:
{"ID":1,"Name":".Net"}
.Net




