예제 #1
0
        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);
        }
예제 #2
0
        /// <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);
        }
예제 #3
0
        /// <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));
        }