বাইনারি, এক্সএমএল বা জসন-এ কোনও বস্তুর ডেটা সংরক্ষণ করার জন্য আমি কেবল একটি ব্লগ পোস্ট লিখেছি । আপনি সঠিক যে আপনার ক্লাসগুলি [সিরিয়ালাইজেবল] বৈশিষ্ট্য সহ সজ্জিত করতে হবে তবে আপনি কেবল বাইনারি সিরিয়ালাইজেশন ব্যবহার করছেন। আপনি এক্সএমএল বা জসন সিরিয়ালাইজেশন ব্যবহার করতে পছন্দ করতে পারেন। এটি বিভিন্ন ফর্ম্যাটে এটি করার জন্য এখানে ফাংশন রয়েছে। আরও তথ্যের জন্য আমার ব্লগ পোস্ট দেখুন।
বাইনারি
public static void WriteToBinaryFile<T>(string filePath, T objectToWrite, bool append = false)
{
using (Stream stream = File.Open(filePath, append ? FileMode.Append : FileMode.Create))
{
var binaryFormatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
binaryFormatter.Serialize(stream, objectToWrite);
}
}
public static T ReadFromBinaryFile<T>(string filePath)
{
using (Stream stream = File.Open(filePath, FileMode.Open))
{
var binaryFormatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
return (T)binaryFormatter.Deserialize(stream);
}
}
এক্সএমএল
আপনার প্রকল্পে অন্তর্ভুক্ত করার জন্য System.XML সমাবেশটি প্রয়োজন।
public static void WriteToXmlFile<T>(string filePath, T objectToWrite, bool append = false) where T : new()
{
TextWriter writer = null;
try
{
var serializer = new XmlSerializer(typeof(T));
writer = new StreamWriter(filePath, append);
serializer.Serialize(writer, objectToWrite);
}
finally
{
if (writer != null)
writer.Close();
}
}
public static T ReadFromXmlFile<T>(string filePath) where T : new()
{
TextReader reader = null;
try
{
var serializer = new XmlSerializer(typeof(T));
reader = new StreamReader(filePath);
return (T)serializer.Deserialize(reader);
}
finally
{
if (reader != null)
reader.Close();
}
}
জসন
আপনাকে অবশ্যই নিউটনসফট.জসন অ্যাসেমব্লির একটি উল্লেখ অন্তর্ভুক্ত করতে হবে, যা জসন.এনইটি নিউজিট প্যাকেজ থেকে পাওয়া যেতে পারে ।
public static void WriteToJsonFile<T>(string filePath, T objectToWrite, bool append = false) where T : new()
{
TextWriter writer = null;
try
{
var contentsToWriteToFile = JsonConvert.SerializeObject(objectToWrite);
writer = new StreamWriter(filePath, append);
writer.Write(contentsToWriteToFile);
}
finally
{
if (writer != null)
writer.Close();
}
}
public static T ReadFromJsonFile<T>(string filePath) where T : new()
{
TextReader reader = null;
try
{
reader = new StreamReader(filePath);
var fileContents = reader.ReadToEnd();
return JsonConvert.DeserializeObject<T>(fileContents);
}
finally
{
if (reader != null)
reader.Close();
}
}
উদাহরণ
WriteToBinaryFile<SomeClass>("C:\someClass.txt", object1);
SomeClass object1= ReadFromBinaryFile<SomeClass>("C:\someClass.txt");