using System;
using System.IO;
using System.Text;
using System.Xml;
using System.Xml.Serialization;
using System.Runtime.Serialization.Formatters.Soap;
namespace XMLMAnager
{
/// <summary>
/// Description résumée de XMLManager.
/// </summary>
public class XMLManagerClass
{
public XMLManagerClass()
{
//
// TODO : ajoutez ici la logique du constructeur
//
}
#region SOAP && XML Serializer
#region declaration d'un namespace
//XmlSerializerNamespaces myNamespaces = new XmlSerializerNamespaces(); //myNamespaces.Add("prefixe1","url_prefixe1");
//myNamespaces.Add("prefixe1","url_prefixe1");
#endregion
public static String SerializeSOAPString(object request,
XmlSerializerNamespaces myNamespaces)
{
XmlSerializer serializerXML = new XmlSerializer(request.GetType());
MemoryStream memStream = new MemoryStream();
serializerXML.Serialize(memStream, request,myNamespaces);
return ConvertStreamToString(memStream);
}
/// <summary>
/// Derialiser et retourne un fichier
/// </summary>
public static bool SerializeSOAPFile(object objet, string pathFile)
{
if (objet == null)
return false;
FileStream stream = new FileStream(pathFile, FileMode.Create);
SoapFormatter objetSoap = new SoapFormatter();
objetSoap.Serialize(stream, objet);
stream.Close();
return true;
}
/// <summary>
/// Déserialise à partir d'un string et return objet
/// </summary>
/// <returns></returns>
public static object DeserializeSOAPString(string sSoap)
{
SoapFormatter objetSoap = new SoapFormatter();
object resultat = null;
resultat = objetSoap.Deserialize(ConvertStringToStream(sSoap));
return resultat;
}
/// <summary>
/// Déserialise à partir d'un fichier et retourne un objet
/// </summary>
/// <returns></returns>
public static object DeserializeSOAPFile(string fichier)
{
if (!File.Exists(fichier))
return null;
SoapFormatter objetSoap = new SoapFormatter();
FileStream stream = new FileStream(fichier, FileMode.Open);
object resultat = null;
resultat = objetSoap.Deserialize(stream);
stream.Close();
return resultat;
}
#region XML
public static string SerializeXMLString(object objet, Type type, XmlSerializerNamespaces myNamespaces)
{
XmlSerializer x = new XmlSerializer(type);
StringWriter writer = new StringWriter();
x.Serialize(writer,objet,myNamespaces);
return writer.GetStringBuilder().ToString();
}
public static bool SerializeXMLFile(object objet, string pathFile, Type type)
{
XmlSerializer x = new XmlSerializer(type);
TextWriter writer = new StreamWriter(pathFile);
x.Serialize(writer,objet);
writer.Close();
return true;
}
public static object DeserializeXMLFile(string pathFile, Type type)
{
XmlSerializer x = new XmlSerializer(type);
FileStream FS = new FileStream(pathFile,FileMode.Open);
XmlReader reader = new XmlTextReader(FS);
return x.Deserialize(reader);
}
public static object DeserializeXMLString(string sr, Type type)
{
XmlSerializer x = new XmlSerializer(type);
StringReader strR = new StringReader(sr);
return x.Deserialize(strR);
}
public static object DeserializeXMLString(string sr, Type type,XmlRootAttribute root)
{
XmlSerializer x = new XmlSerializer(type,root);
StringReader strR = new StringReader(sr);
return x.Deserialize(strR);
}
#endregion
#endregion
#region Conversion Stream && String
public static string ConvertStreamToString(Stream leStream)
{
if(leStream.Position>0 && leStream.CanSeek) leStream.Position=0;
string leString="";
using (StreamReader sr = new StreamReader(leStream) )
{
leString = sr.ReadToEnd();
sr.Close();
}
return leString;
}
public static MemoryStream ConvertStringToStream(string stringval)
{
byte[] stringbytes = ASCIIEncoding.ASCII.GetBytes(stringval);
MemoryStream st = new MemoryStream(stringbytes);
return st;
}
#endregion
}
}