Deserialize from string instead TextReader

前端 未结 5 1765
没有蜡笔的小新
没有蜡笔的小新 2020-12-07 14:12

I want to change my code from:

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

TextReader r = new StreamReader         


        
5条回答
  •  离开以前
    2020-12-07 14:55

    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(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;
    }
    

    To use it:

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

提交回复
热议问题