কম্পিউটার টিউটোরিয়াল

C#-তে বাইনারি সিরিয়ালাইজেশন এবং ডিসিরিয়ালাইজেশন কী?

সংজ্ঞা

  • বাইনারি সিরিয়ালাইজেশন: একটি অবজেক্টকে মানব-পঠনযোগ্য নন-বাইনারি ফরম্যাটে রূপান্তর করা
  • ডিসিরিয়ালাইজেশন: বাইনারি ফরম্যাট থেকে আবার অবজেক্টে রূপান্তর করা

প্রয়োজনীয় লাইব্রেরি

using System.Runtime.Serialization.Formatters.Binary;

নোট: .NET Core / .NET 5+ এ BinaryFormatter সিকিউরিটি কারণে অবমূল্যায়িত (Obsolete)। বদলে System.Text.Json বা protobuf-net ব্যবহার করা উচিত।

সিরিয়ালাইজেশন উদাহরণ

[Serializable]
public class Demo {
    public string ApplicationName { get; set; } = "Binary Serialize";
    public int ApplicationId { get; set; } = 1001;
}

class Program {
    static void Main() {
        Demo sample = new Demo();
        
        using (FileStream fs = new FileStream(@"C:\Temp\Questions.dat", FileMode.Create)) {
            BinaryFormatter formatter = new BinaryFormatter();
            formatter.Serialize(fs, sample);
        }
        
        Console.WriteLine("সিরিয়ালাইজেশন সম্পন্ন");
        Console.ReadKey();
    }
}

ডিসিরিয়ালাইজেশন উদাহরণ

[Serializable]
public class Demo {
    public string ApplicationName { get; set; }
    public int ApplicationId { get; set; }
}

class Program {
    static void Main() {
        using (FileStream fs = new FileStream(@"C:\Temp\Questions.dat", FileMode.Open)) {
            BinaryFormatter formatter = new BinaryFormatter();
            Demo deserialized = (Demo)formatter.Deserialize(fs);
            
            Console.WriteLine($"ApplicationName: {deserialized.ApplicationName}");
            Console.WriteLine($"ApplicationId: {deserialized.ApplicationId}");
        }
        Console.ReadKey();
    }
}

আউটপুট:

ApplicationName: Binary Serialize
ApplicationId: 1001

গুরুত্বপূর্ণ নোটস

  • ক্লাসে [Serializable] অ্যাট্রিবিউট বাধ্যতামূলক
  • প্রাইভেট ফিল্ডও সিরিয়ালাইজ হয়
  • [NonSerialized] দিয়ে ফিল্ড বাদ দেওয়া যায়
  • ভার্সন টলারেন্স জন্য OptionalField ব্যবহার করুন
  • সিকিউরিটি সতর্কতা: অ-भরোসামন্দ সোর্স থেকে ডিসিরিয়ালাইজ করবেন না (RCE ঝুঁকি)

আধুনিক বিকল্প (প্রস্তাবিত)

// System.Text.Json (নিরাপদ, দ্রুত, ক্রস-প্ল্যাটফর্ম)
var json = JsonSerializer.Serialize(obj);
var obj2 = JsonSerializer.Deserialize<Demo>(json);
  1. উইন্ডোজ ১০ গড মোড: কী এবং কীভাবে সক্রিয় করবেন

  2. Googledrivesync.exe: এটি কী এবং কীভাবে মুছে ফেলবেন?

  3. Win32WebViewHost কী, এটি কী কাজ করে এবং কীভাবে মুছে ফেলবেন?

  4. BIOS কী এবং কেন আপডেট করবেন: পিসি ফার্মওয়্যার আপডেটের সম্পূর্ণ গাইড