Beispiel #1
0
        /// <summary>
        /// Create a new instance of the IFormatter class.
        /// </summary>
        /// <param name="method"></param>
        /// <returns></returns>
        private static IFormatter CreateFormatter(SerializeMethods method)
        {
            switch (method)
            {
            case SerializeMethods.Binary:
                return(new BinaryFormatter());

            case SerializeMethods.Soap:
                return(new SoapFormatter());

            //// TODO: this stop working on clr 4.0
            //case SerializeMethods.NetDataContract:
            //	return new NetDataContractSerializer();
            case SerializeMethods.XmlDataContract:
                throw new NotImplementedException("XmlDataContract not available");

            //return new XmlDataContractSerializer();
            case SerializeMethods.Json:
                throw new NotImplementedException("json not available");

            //return new XmlObjectSerializer();
            //return new DataContractJsonSerializer();
            default:
                throw new ArgumentOutOfRangeException("method=" + method);
            }
        }
Beispiel #2
0
        public static void Main(string[] args)
        {
            /*var myObj = new myclass[]
             *          {
             *                  null,
             *                  new myclass()
             *                  {
             *                          blah = 93,
             *                          hello = "lalalal",
             *                          dec = null,
             *                          obj = new myclass()
             *                          {
             *                                  hello = "hello",
             *                                  blah = 39,
             *                                  dec = new decimal[]
             *                                  {
             *                                          3.4M, 0.0000001M
             *                                  },
             *                                  obj = null
             *                          }
             *                  }
             *          };
             *
             *          var mystep = SerializeMethods.Serialize(myObj);
             *          foreach (var s in mystep) Console.WriteLine(s);
             *          Console.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(DeserializeMethods.Deserialize(mystep)));
             *          Console.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(myObj));
             *  }*/

            byte[]  serialized = SerializeMethods.Serialize(new { someString = "Hi NSA!", someInteger = 5, someDouble = 2.8, someArrayOfInts = new int[] { 5, 2, 6, 8, 9 }, someArrayOfDoubles = new double[] { 2.5, 8.9, 2.7 } });
            dynamic obj        = DeserializeMethods.Deserialize(serialized);

            object[] egers = obj.someArrayOfDoubles;
        }
Beispiel #3
0
        /// <summary>
        /// Deserialize the string value
        /// </summary>
        /// <param name="value"></param>
        /// <param name="method"></param>
        /// <returns></returns>
        public static T Deserialize <T>(string value, SerializeMethods method)
        {
            if (string.IsNullOrEmpty(value))
            {
                return(default(T));
            }

            if (method == SerializeMethods.Xml)
            {
                return(XmlDeserialize <T>(value));
            }

            byte[] input = Encoding.ASCII.GetBytes(value);
            return(Deserialize <T>(input, method));
        }
Beispiel #4
0
        /// <summary>
        /// Deserialize the byte array value.
        /// </summary>
        /// <param name="value"></param>
        /// <param name="method"></param>
        /// <returns></returns>
        public static T Deserialize <T>(byte[] value, SerializeMethods method)
        {
            if (value == null || value.Length == 0)
            {
                return(default(T));
            }

            if (method == SerializeMethods.Xml)
            {
                return(XmlDeserialize <T>(value));
            }

            using (MemoryStream stream = new MemoryStream(value))
            {
                stream.Seek(0, SeekOrigin.Begin);
                IFormatter formatter = CreateFormatter(method);
                return((T)formatter.Deserialize(stream));
            }
        }
Beispiel #5
0
        /// <summary>
        /// Serialize an object using the specified formatter.
        /// </summary>
        /// <param name="theObject"></param>
        /// <param name="method"></param>
        /// <returns></returns>
        public static string Serialize(object theObject, SerializeMethods method)
        {
            if (theObject == null)
            {
                return(string.Empty);
            }

            if (method == SerializeMethods.Xml)
            {
                return(XmlSerialize(theObject));
            }

            using (MemoryStream stream = new MemoryStream())
            {
                IFormatter formatter = CreateFormatter(method);
                formatter.Serialize(stream, theObject);
                byte[] results = stream.ToArray();
                return(Encoding.ASCII.GetString(results));
            }
        }
Beispiel #6
0
 public SerializeMethod(Serialize Cdo, SerializeMethods Method, Serialize_Parameters Parameters)
 {
     this.Cdo           = Cdo;
     this.ServiceMethod = Method;
     this.Parameters    = Parameters;
 }