Esempio n. 1
0
 public static IContentSerializer GetSerializer()
 {
     return(SerializerBulider
            .For(ContentType.ApplicationJson)
            .Serialize(Serialize)
            .Deserialize(Deserialize));
 }
Esempio n. 2
0
        static void Main(string[] args)
        {
            var config = new Configuration
            {
                BaseUrl  = "http://localhost:1337/",
                Advanced =
                {
                    Serializers = new List <IContentSerializer>
                    {
                        new Serializer <NewtonSoft>(ContentType.ApplicationJson),
                        new Serializer <DefaultXml>(ContentType.ApplicationXml)
                    }
                }
            };

            var tomorrow = new Todo {
                Description = "Sleep in"
            };

            var xmlSerializer = new Serializer <DefaultXml>(ContentType.ApplicationXml);
            var todoXml       = xmlSerializer.Serialize(tomorrow);
            var xmlBack       = xmlSerializer.Deserialize <Todo>(todoXml);

            // Create a custom serializer
            var custom = SerializerBulider
                         .For(ContentType.ApplicationJson)
                         .Serialize(NewtonSoft.Serialize)
                         .Deserialize(DefaultJson.Deserialize);

            var customJson = custom.Serialize(tomorrow);
            var customObj  = custom.Deserialize <Todo>(customJson);

            // Configure JsonNet however you want
            var newtonSoftSettings = new JsonSerializerSettings
            {
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            };

            //Register the change
            NewtonSoft.UpdateSettings(new NewtonsoftSettings {
                Settings = newtonSoftSettings
            });

            // Go crazy, oh baby!
            var serializer   = new Serializer <NewtonSoft>(ContentType.ApplicationJson);
            var tomorrowJson = serializer.Serialize(tomorrow);
            var tommorowObj  = serializer.Deserialize <Todo>(tomorrowJson);

            var client  = new HttpClient(config);
            var created = client.PostAsync <Todo>("api/todos", tomorrow).Result;
        }
        public void Should_Set_Correct_Content_Types()
        {
            /* Setup */
            var expected = new[] { ContentType.ApplicationJson, ContentType.TextCsv };

            /* Test */
            var result = SerializerBulider
                         .For(expected)
                         .Serialize(o => string.Empty)
                         .Deserialize((s, t) => new object());

            /* Assert */
            Assert.That(result.ContentType, Is.EqualTo(expected));
        }
        public void Should_Call_Provided_Deserialize_Func_Upon_Deserialization()
        {
            /* Setup */
            var deserializedCalled = false;
            var serializer         = SerializerBulider
                                     .For(ContentType.ApplicationJson)
                                     .Serialize(o => string.Empty)
                                     .Deserialize((s, t) =>
            {
                deserializedCalled = true;
                return(new object());
            });

            /* Test */
            serializer.Deserialize <object>(string.Empty);

            /* Assert */
            Assert.That(deserializedCalled, Is.True);
        }