KMRT BSRN

"Hiç kimsenin ilgisine ihtiyaç duymadığın gün olgunlaşırsın. Hiç kimseden beklentiye girmediğin gün yara almazsın. Ve hiç kimseye bağımlı kalmazsan kazanırsın." OSHO

Serialize & Deserialize

Yorum bırakın


Fazla açıklamaya gerek yok. Aşağıdaki metotları kullanarak nesnelerinizin Serialize ve Deserialize işlemlerini kolayca yapabilirsiniz..

C#
private string SerializeObject(Type type, object o)
{

    string result = string.Empty;

    System.IO.StringWriter writer = new System.IO.StringWriter();

    System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(type);
    serializer.Serialize(writer, o);

    result = writer.ToString();

    return result;

}

private object DeserializeObject(Type t, string s)
{

    object result = null;

    if (!string.IsNullOrEmpty(s)) {
        System.IO.TextReader tr = new System.IO.StringReader(s);
        System.Xml.XmlReader reader = System.Xml.XmlReader.Create(tr);
        System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(t);

        if (serializer.CanDeserialize(reader)) {
            result = serializer.Deserialize(reader);
        }
    }

    return result;

}

Şöyle biraz daha bu yapıyı geliştirerek kendime bir Class oluşturayım derseniz.. Bir de bunu generic tip ile süslersem ne olur acaba !? dediğinizde ise şu oluyor; 🙂

C#
using Microsoft.VisualBasic;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
public class c_Serializer<t>
{

    /// <summary>
    /// Parametre olarak ge?ilen nesneye XML serile?tirme uygular..
    /// </summary>
    /// <param name="obj">Serile?tirmek istenilen nesne.
    /// <returns>XML ifade.</returns>
    /// <remarks></remarks>
    public string Serialize(T obj) {

        string result = string.Empty;

        System.IO.StringWriter writer = new System.IO.StringWriter();

        System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(typeof(T));
        serializer.Serialize(writer, obj);

        result = writer.ToString();

        return result;

    }

    /// <summary>
    /// Parametre olarak ge?ilen nesneye XML serile?tirme uygular..
    /// </summary>
    /// <param name="type">Serile?tirme uygulanacak tip.
    /// <param name="o">Serile?tirmek istenilen nesne.
    /// <returns>XML ifade.</returns>
    /// <remarks></remarks>
    private string Serialize(Type type, object o) {

        string result = string.Empty;

        System.IO.StringWriter writer = new System.IO.StringWriter();

        System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(type);
        serializer.Serialize(writer, o);

        result = writer.ToString();

        return result;

    }

    /// <summary>
    /// Parametre olarak ge?ilen XML ifadeyi, e?er de-serile?tirme yap?labiliyorsa nesneye ?evirir. Aksi halde "Nothing" d?ner.
    /// </summary>
    /// <param name="s">XML ifade.
    /// <returns>Nesne.</returns>
    /// <remarks></remarks>
    public T Deserialize(string s) {

        T result = null;

        if (!string.IsNullOrEmpty(s)) {
            System.IO.TextReader tr = new System.IO.StringReader(s);
            System.Xml.XmlReader reader = System.Xml.XmlReader.Create(tr);
            System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(typeof(T));

            try {
                if (serializer.CanDeserialize(reader)) {
                    result = (T)serializer.Deserialize(reader);
                }

            }
            catch (Exception ex) {
            }

        }

        return result;

    }

    /// <summary>
    /// Parametre olarak ge?ilen XML ifadeyi, e?er de-serile?tirme yap?labiliyorsa nesneye ?evirir. Aksi halde "Nothing" d?ner.
    /// </summary>
    /// <param name="t">De-serile?tirmede kullan?lacak tip.
    /// <param name="s">XML ifade.
    /// <returns>Nesne.</returns>
    /// <remarks></remarks>
    private object Deserialize(Type t, string s) {

        object result = null;

        if (!string.IsNullOrEmpty(s)) {
            System.IO.TextReader tr = new System.IO.StringReader(s);
            System.Xml.XmlReader reader = System.Xml.XmlReader.Create(tr);
            System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(t);

            if (serializer.CanDeserialize(reader)) {
                result = serializer.Deserialize(reader);
            }
        }

        return result;

    }

}

Reklamlar

Yazar: K. Murat BAŞEREN, MBA, MCP

I am a senior software developer, MCP, consultant, blogger, former chemist and software trainer. My interests range from software developer to technology. I am also interested in web development, education, and coffee.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s