19 Mart 2015 Perşembe

.Net C# Object Serialization ve Deserialization


Zaman zaman çektiğimiz verilerin xml olarak alınması gerekebilir.Bu durumda yazılımcıların genelde ihtiyacı olan bu işlemi pratik bir şekilde yapabiliriz.Bu işlemi xml yayınlama, nesne listesi olarak aldığımız verilerin xml olarak incelenmesi, vb. gibi süreçleri için kullanabiliriz.


1.Bir nesneyi yada nesne listesini xml dosyası olarak serialize etme işlemi için kullanabileceğimiz metod :

 public bool SerializeObject<T>(T dataList, string filePath)
        {
            bool isSuccess = true;
            try
            {
                string requestString = string.Empty;
                XmlSerializer xmlSerializer = new XmlSerializer(dataList.GetType());
                using (StringWriter writer = new StringWriter())
                {
                    xmlSerializer.Serialize(writer, dataList);
                    requestString = writer.ToString();
                }//End Using

                File.WriteAllText(filePath);
            }
            catch (Exception ex)
            {
                isSuccess = false;
            }

            return isSuccess;

        }//End Method


2.Serialize ettiğimiz bir xml dosyasını deserialize etme işlemi için kullanabileceğimiz metod :

  public List<T> DeserializeObject<T>(string filePath)
        {
            try
            {
                if (!File.Exists(filePath))
                    return default(List<T>);

                string xmlString = File.ReadAllText(filePath);

                using (MemoryStream mStream = new MemoryStream(Encoding.Unicode.GetBytes(xmlString)))
                {
                    mStream.Position = 0;
                    XmlSerializer serializer = new XmlSerializer(typeof(List<T>));
                    return (List<T>)serializer.Deserialize(mStream);

                }
            }
            catch (Exception ex)
            {
                return default(List<T>);
            }

        }//End Class


Yunus Emre Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.