SORU
27 ŞUBAT 2010, CUMARTESİ


Serisini dize yerine TextReader

Dan Şifremi değiştirmek istiyorum:

string path = @"c:\Directory\test.xml";
XmlSerializer s = new XmlSerializer(typeof(Car));
Car car;

TextReader r = new new StreamReader(path);

car = (Car)s.Deserialize(r);
r.Close();

Kod içine bir dize için bir XML dönüştürmek ve nesne Arabaya dize dönüştürmek.

Bu mümkün mü?

CEVAP
27 ŞUBAT 2010, CUMARTESİ


    public static string XmlSerializeToString(this object objectInstance)
    {
        var serializer = new XmlSerializer(objectInstance.GetType());
        var sb = new StringBuilder();

        using (TextWriter writer = new StringWriter(sb))
        {
            serializer.Serialize(writer, objectInstance);
        }

        return sb.ToString();
    }

    public static T XmlDeserializeFromString<T>(this string objectData)
    {
        return (T)XmlDeserializeFromString(objectData, typeof(T));
    }

    public static object XmlDeserializeFromString(this string objectData, Type type)
    {
        var serializer = new XmlSerializer(type);
        object result;

        using (TextReader reader = new StringReader(objectData))
        {
            result = serializer.Deserialize(reader);
        }

        return result;
    }

Kullanmak için:

//Make XML
var settings = new ObjectCustomerSettings();
var xmlString = settings.XmlSerializeToString();

//Make Object
var settings = xmlString.XmlDeserializeFromString<ObjectCustomerSettings>(); 

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bmarian22

    bmarian22

    22 Aralık 2007
  • jkimisyellow...ish

    jkimisyellow

    8 Temmuz 2009
  • PlugResearch

    PlugResearch

    22 Mart 2006