Pro zjednoduseni teto prace muze byt pouzita trida, ktera umi
Serializace + deserializace do/ze stringu/souboru
public static class XmlSerialization<T>
{
private static XmlSerializer serializer = new XmlSerializer(typeof(T));
private static CultureInfo culture = CultureInfo.CreateSpecificCulture("en-US");
static public T LoadXmlFromString(string tData)
{
T t;
using (TextReader textReader = new StringReader(tData))
{
t = (T)serializer.Deserialize(textReader);
}
return t;
}
static public T LoadXmlFromFile(string path)
{
T t;
using (TextReader textReader = new StreamReader(path))
{
t = (T)serializer.Deserialize(textReader);
}
return t;
}
static public void WriteXmlToFile(T t, string path)
{
using (TextWriter textWriter = new StreamWriter(path))
{
serializer.Serialize(textWriter, t);
}
}
static public string WriteXmlToString(T t)
{
StringBuilder sb = new StringBuilder();
using (TextWriter textWriter = new StringWriter(sb, culture))
{
serializer.Serialize(textWriter, t);
}
return sb.ToString();
}
}
Priklad: nacteni vsech XML definice v jednom adresari a jejich pomasirovani do objektu:
(zatim neresim co kdyz tam je XML jineho typu)
public static workflow[] LoadAllDefinitions(string dirpath)
{
List<definition> wfs = new List<definition>();
string[] dfFiles = Directory.GetFiles(dirpath, "*.xml");
foreach(string dfFile in dfFiles)
{
wfs.Add(XmlSerialization<definition>.LoadXmlFromFile(dfFile));
}
return wfs.ToArray<definition>();
}
public static definition[] LoadAllWorkflows()
{
return LoadAllDefinitions(ConfigurationManager.AppSettings["DefinitionDirectory"]);
}
Nasleduje jednoduchy priklad pouziti. Vykousa ze vsech xml souboru v danem adresari name a vsupni parametry:
public static List<Description> GetWorkflows()
{
Data.xsd.definition[] wfs = Data.xsd.DefinitionFileTools.LoadAllDefinitions();
List<Description> ifd = new List<Description>();
foreach (Data.xsd.definition df in dfs)
{
ifd.Add(new IngestWorkflowDescription()
{
Name = df.name,
FileInputMeans = (from param in df.parameters select param.name).ToArray<string>()
});
}
return ifd;
}
Autor: Matěj Cáha