public static IParamValuesSerializer SerializerFactory(bool isxml) { IParamValuesSerializer retour = null; if (isxml) { retour = new ParamValuesSerializerXml(); } else { retour = new ParamValuesSerializerJson(); //if (ParamValuesTools.DatavaluesSerializerJsonType == null) // la fonction ne peus pas être incluse dans le code car nécessite d'autre DLL (attendre .netcore 3 pour simplifier cette étape) // ParamValuesTools.DatavaluesSerializerJsonType = CODE.REFLEXION.ReflexionTools.GetTypeByReflexion("Nglib.DATA..ParamValuesSerializerJson, Nglib.Extras"); ////if (DataValuesTools.DatavaluesSerializerJsonType == null) // on prend un json dérivé //// DataValuesTools.DatavaluesSerializerJsonType = typeof(DATAVALUES.DatavamueSerializerJsonLite); //if (ParamValuesTools.DatavaluesSerializerJsonType == null) // throw new Exception("DataValueSerializer For JSON not found. Please import Nglib.Extras.Dll AND Newtonsoft.Json"); //retour = CODE.REFLEXION.ReflexionTools.NewInstance<IParamValuesSerializer>(ParamValuesTools.DatavaluesSerializerJsonType); //if (retour == null) throw new Exception("DatavaluesSerializerJsonType NewInstance error"); } return(retour); }
/// <summary> /// Chargement d'un flux(Json/Ou XML) dans le datavalue /// </summary> /// <param name="itemdv"></param> /// <param name="flux"></param> public static void FromFlux(this ParamValues datavalue, string flux, bool?isXml = null) { //clean if (string.IsNullOrWhiteSpace(flux)) { return; } flux = flux.Trim(); if (!isXml.HasValue) { isXml = flux.TrimStart().StartsWith("<"); } IParamValuesSerializer serial = ParamValuesTools.SerializerFactory(isXml.Value); serial.DeSerialize(flux, datavalue); //parse //if (flux.StartsWith("{")) this.FromFluxJson(flux); //if (flux.StartsWith("<")) fromFluxXML(datavalue,flux); }
/// <summary> /// Exporter un flux du datavalue /// </summary> /// <param name="datavalue"></param> /// <param name="Xml">true=xml, false=json</param> /// <returns></returns> public static string ToFlux(this ParamValues datavalue, bool isXml = true) { IParamValuesSerializer serial = ParamValuesTools.SerializerFactory(isXml); return(serial.Serialize(datavalue)); }