public static void Reset()
 {
     UseStandardCodecs  = true;
     UserAgent          = "Ramone/1.0";
     DefaultEncoding    = Encoding.UTF8;
     SerializerSettings = new ObjectSerializerSettings();
 }
        public void CanSerializeSimpleClassWithEncoding(
            [Values("UTF-8|MyInt=10&MyString=Abc+%c3%86%c3%98%c3%85%5e%c3%bc",
                    "Windows-1252|MyInt=10&MyString=Abc+%c6%d8%c5%5e%fc",
                    "iso-8859-1|MyInt=10&MyString=Abc+%c6%d8%c5%5e%fc")] string charsetData)
        {
            string[] elements = charsetData.Split('|');
            string   charset  = elements[0];
            string   expected = elements[1];

            using (MemoryStream s = new MemoryStream())
                using (StreamWriter w = new StreamWriter(s))
                {
                    SimpleData data = new SimpleData
                    {
                        MyInt    = 10,
                        MyString = "Abc ÆØÅ^ü"
                    };
                    ObjectSerializerSettings settings = new ObjectSerializerSettings {
                        Encoding = Encoding.GetEncoding(charset)
                    };
                    new FormUrlEncodingSerializer(typeof(SimpleData)).Serialize(w, data, settings);

                    w.Flush();
                    s.Seek(0, SeekOrigin.Begin);

                    // Must always be written in plain old ASCII
                    using (StreamReader r = new StreamReader(s, Encoding.ASCII))
                    {
                        string result = r.ReadToEnd();
                        Assert.AreEqual(expected, result);
                    }
                }
        }
Beispiel #3
0
        public void CanSerializeWithDifferentSeparatorFormaters()
        {
            // Arrange
            var o = new
            {
                B = new string[] { "abc", "xyz" },
                A = new Hashtable()
            };

            ((Hashtable)o.A)["p"] = 17;
            ((Hashtable)o.A)["q"] = "abc";

            ObjectSerializerSettings settings = new ObjectSerializerSettings
            {
                ArrayFormat      = "{0}:{1}",
                DictionaryFormat = "{0}#{1}",
                PropertyFormat   = "{0}+{1}"
            };

            // Act
            string result = Serialize(o, settings);

            // Assert
            Assert.AreEqual("|B:0=abc|B:1=xyz|A#p=17|A#q=abc", result);
        }
Beispiel #4
0
        public void CanSerializeFileWithInternationalCharactersInFilenameWhenSettingsAllowIt()
        {
            ObjectSerializerSettings settings = new ObjectSerializerSettings();

            settings.EnableNonAsciiCharactersInMultipartFilenames = true;

            using (MemoryStream s = new MemoryStream())
            {
                FileData data = new FileData
                {
                    MyFile = new FileWithSpecialName("..\\..\\data1.txt", "Bøllefrø.txt")
                };
                new MultipartFormDataSerializer(typeof(FileData)).Serialize(s, data, Encoding.UTF8, "xyzq", settings);

                string expected = @"
--xyzq
Content-Disposition: form-data; name=""MyFile""; filename=""Bxllefrx.txt""; filename*=UTF-8''B%c3%b8llefr%c3%b8.txt

Æüî´`'
--xyzq--";

                s.Seek(0, SeekOrigin.Begin);
                using (StreamReader r = new StreamReader(s))
                {
                    string result = r.ReadToEnd();
                    Assert.AreEqual(expected, result);
                }
            }
        }
Beispiel #5
0
        public string[] Serialize(string itemPath, object obj, ObjectSerializerSettings settings)
        {
            var filename = itemPath + extensions;
            var contents = JObject.FromObject(obj).ToString();

            File.WriteAllText(filename, contents, Encoding.UTF8);
            return(new string[] { filename });
        }
Beispiel #6
0
        protected string Serialize(object data, ObjectSerializerSettings settings = null)
        {
            ObjectSerializer serializer           = new ObjectSerializer(data.GetType());
            ObjectToStringPropertyVisitor visitor = new ObjectToStringPropertyVisitor();

            serializer.Serialize(data, visitor, settings);
            return(visitor.Result);
        }
        public void Serialize(TextWriter writer, object data, ObjectSerializerSettings settings = null)
        {
            Condition.Requires(writer, "writer").IsNotNull();

            Encoding enc = GetEncoding(settings);
            FormUrlEncodingPropertyVisitor v = new FormUrlEncodingPropertyVisitor(writer, enc);

            Serializer.Serialize(data, v, settings);
        }
        /// <summary>
        /// Deserialize form-urlencoded data from reader.
        /// </summary>
        /// <param name="reader">A TextReader for reading url-encoded string input.</param>
        /// <param name="settings">Settings for deserialization.</param>
        /// <returns></returns>
        public object Deserialize(TextReader reader, ObjectSerializerSettings settings = null)
        {
            Condition.Requires(reader, "reader").IsNotNull();

            string              data   = reader.ReadToEnd();
            Encoding            enc    = GetEncoding(settings);
            NameValueCollection values = UrlUtility.ParseQueryString(data, enc);

            return(Serializer.Deserialize(values, settings));
        }
 public RamoneService(Uri baseUri)
 {
     BaseUri                 = baseUri;
     DefaultEncoding         = Encoding.UTF8;
     CodecManager            = new CodecManager();
     AuthorizationDispatcher = new AuthorizationDispatcher();
     RequestInterceptors     = new RequestInterceptorSet();
     SerializerSettings      = new ObjectSerializerSettings();
     AllowedRedirectsMap     = new Dictionary <int, int>();
 }
 public MultipartFormDataPropertyVisitor(Stream s, Encoding encoding = null, string boundary = null, ObjectSerializerSettings settings = null)
 {
     if (encoding == null)
     {
         encoding = Encoding.UTF8;
     }
     Writer   = new StreamWriter(s, encoding);
     Output   = s;
     Boundary = (boundary != null ? boundary : Guid.NewGuid().ToString());
     Settings = settings;
 }
Beispiel #11
0
 public string[] GetItemPaths(string path, Type type, ObjectSerializerSettings settings)
 {
     //if (type == typeof(CremaDataTable))
     //{
     //    throw new NotImplementedException();
     //}
     //else
     //{
     //    var directories = DirectoryUtility.GetAllDirectories(path, "*", true);
     //    var files = DirectoryUtility.GetAllFiles(path, "*.xml");
     //    return directories.Concat(files).OrderBy(item => item).ToArray();
     //}
     throw new NotImplementedException();
 }
 public RamoneSession(IService service)
 {
     Service                  = service;
     UserAgent                = service.UserAgent;
     BaseUri                  = Service.BaseUri;
     DefaultEncoding          = service.DefaultEncoding;
     DefaultRequestMediaType  = service.DefaultRequestMediaType;
     DefaultResponseMediaType = service.DefaultResponseMediaType;
     Cookies                  = new CookieContainer();
     AuthorizationDispatcher  = service.AuthorizationDispatcher.Clone();
     RequestInterceptors      = service.RequestInterceptors.Clone();
     SerializerSettings       = new ObjectSerializerSettings(service.SerializerSettings);
     AllowedRedirectsMap      = new Dictionary <int, int>();
     service.CopyRedirect(this);
 }
Beispiel #13
0
 public void WriteTo(object entity, OpenRasta.Web.IHttpEntity response, string[] codecParameters)
 {
     using (TextWriter writer = new StreamWriter(response.Stream))
     {
         Encoding enc = null;
         if (Context.Request.Headers["Accept-Charset"] != null)
         {
             enc = Encoding.GetEncoding(Context.Request.Headers["Accept-Charset"]);
         }
         ObjectSerializerSettings settings = new ObjectSerializerSettings {
             Encoding = enc
         };
         FormUrlEncodingSerializer serializer = new FormUrlEncodingSerializer(entity.GetType());
         serializer.Serialize(writer, entity, settings);
     }
 }
Beispiel #14
0
        public void WhenSerializingItUsesSuppliedLocale()
        {
            // Arrange
            ClassWithLocaleDependentValues o = new ClassWithLocaleDependentValues
            {
                Dec = 10.5M,
                Flo = 20.12F,
                Dou = 13.23
            };

            // Act
            ObjectSerializerSettings settings = new ObjectSerializerSettings
            {
                Culture = CultureInfo.GetCultureInfo("da-DK")
            };

            string result = Serialize(o, settings);

            // Assert
            Assert.AreEqual("|Dec=10,5|Flo=20,12|Dou=13,23", result);
        }
        public void CanSerializeWithStandardFormaters()
        {
            // Arrange
            RamoneConfiguration.RegisterStandardSerializationFormaters(MyObjectSerializerFormaterManager);
            var o = new
            {
                Bool = false,
                Date = new DateTime(2012, 10, 12, 15, 14, 13),
                Url  = new Uri("http://dr.dk")
            };

            // Act
            ObjectSerializerSettings settings = new ObjectSerializerSettings
            {
                Formaters = MyObjectSerializerFormaterManager
            };

            string result = Serialize(o, settings);

            // Assert
            Assert.AreEqual("|Bool=False|Date=2012-10-12T15:14:13|Url=http://dr.dk/", result);
        }
Beispiel #16
0
        public void CanSerializeDictionaryAndClassesAndExcludeNullValues()
        {
            // Arrange
            var o = new
            {
                A = (int?)null,
                B = new Dictionary <string, object>
                {
                    { "X", 100 },
                    { "Y", null }
                }
            };

            ObjectSerializerSettings settings = new ObjectSerializerSettings {
                IncludeNullValues = false
            };

            // Act
            string result = Serialize(o, settings);

            // Assert
            Assert.AreEqual("|B[X]=100", result);
        }
        public void CanSerializeWithFormaters()
        {
            // Arrange
            MyObjectSerializerFormaterManager.AddFormater(typeof(Mail), new MailObjectSerializerFormater());
            MyObjectSerializerFormaterManager.AddFormater(typeof(bool), new BoolObjectSerializerFormater());
            var o = new
            {
                Mail = new Mail {
                    Address = "*****@*****.**"
                },
                Bool = true
            };

            // Act
            ObjectSerializerSettings settings = new ObjectSerializerSettings
            {
                Formaters = MyObjectSerializerFormaterManager
            };

            string result = Serialize(o, settings);

            // Assert
            Assert.AreEqual("|[email protected]|Bool=1", result);
        }
Beispiel #18
0
 public void Validate(string itemPath, Type type, ObjectSerializerSettings settings)
 {
     throw new NotImplementedException();
 }
        public void Serialize(Stream s, object data, Encoding encoding = null, string boundary = null, ObjectSerializerSettings settings = null)
        {
            MultipartFormDataPropertyVisitor v = new MultipartFormDataPropertyVisitor(s, encoding, boundary, settings);

            Serializer.Serialize(data, v, settings);
        }
 Encoding GetEncoding(ObjectSerializerSettings settings)
 {
     return(settings != null ? settings.Encoding ?? Encoding.UTF8 : Encoding.UTF8);
 }
Beispiel #21
0
 public bool CanCreate(Type objectType, Value context, ObjectSerializerSettings settings, params object[] args)
 {
     throw new NotImplementedException();
 }
Beispiel #22
0
 public object Create(Type type, Value value, ObjectSerializerSettings settings, params object[] args)
 {
     throw new NotImplementedException();
 }
Beispiel #23
0
 public object Deserialize(Type type, Value value, ObjectSerializerSettings settings)
 {
     return(new Rectangle(value.AsTuple[0], value.AsTuple[1], value.AsTuple[2],
                          value.AsTuple[3]));
 }
Beispiel #24
0
 public T Deserialize <T>(Value value, ObjectSerializerSettings settings)
 {
     return((T)Deserialize(typeof(T), value, settings));
 }
Beispiel #25
0
        public Value Serialize(object @object, ObjectSerializerSettings settings)
        {
            var rect = (Rectangle)@object;

            return(new Value(new Value[] { rect.Top, rect.Left, rect.Width, rect.Height }));
        }
Beispiel #26
0
 public bool Exists(string itemPath, Type type, ObjectSerializerSettings settings)
 {
     throw new NotImplementedException();
 }
Beispiel #27
0
 public string[] GetReferencedPath(string itemPath, Type type, ObjectSerializerSettings settings)
 {
     throw new NotImplementedException();
 }
Beispiel #28
0
        public string[] GetPath(string itemPath, Type type, ObjectSerializerSettings settings)
        {
            var filename = itemPath + extensions;

            return(new string[] { filename });
        }