예제 #1
1
        public void Should_register_converters_when_asked()
        {
            // Given
            var defaultSerializer = new JavaScriptSerializer();
            var configuration = new JsonConfiguration(Encoding.UTF8, new[] { new TestConverter() }, new[] { new TestPrimitiveConverter() }, false, false);

            // When
            var serializer = new JavaScriptSerializer(configuration, true, GlobalizationConfiguration.Default);

            var data =
                new TestData()
                {
                    ConverterData =
                        new TestConverterType()
                        {
                            Data = 42,
                        },

                    PrimitiveConverterData =
                        new TestPrimitiveConverterType()
                        {
                            Data = 1701,
                        },
                };

            const string ExpectedJSON = @"{""converterData"":{""dataValue"":42},""primitiveConverterData"":1701}";

            // Then
            serializer.Serialize(data).ShouldEqual(ExpectedJSON);

            serializer.Deserialize<TestData>(ExpectedJSON).ShouldEqual(data);
        }
예제 #2
0
        private INancyEnvironment GetTestingEnvironment(JsonConfiguration configuration)
        {
            var environment =
                new DefaultNancyEnvironment();

            environment.AddValue(configuration);

            return environment;
        }
예제 #3
0
 /// <summary>
 /// Creates an instance of <see cref="JavaScriptSerializer"/>
 /// </summary>
 /// <param name="jsonConfiguration">A <see cref="JsonConfiguration"/> object to configure the serializer</param>
 /// <param name="globalizationConfiguration">A <see cref="GlobalizationConfiguration"/> object to configure the serializer</param>
 public JavaScriptSerializer(JsonConfiguration jsonConfiguration, GlobalizationConfiguration globalizationConfiguration)
 {
     this.jsonConfiguration          = jsonConfiguration;
     this.globalizationConfiguration = globalizationConfiguration;
     this.serializerStrategy         = new NancySerializationStrategy(jsonConfiguration.RetainCasing, jsonConfiguration.SerializeEnumToString);
 }
예제 #4
0
 /// <summary>
 /// Initializes a new instance of the <see cref="JsonBodyDeserializer"/>,
 /// with the provided <paramref name="environment"/>.
 /// </summary>
 /// <param name="environment">An <see cref="INancyEnvironment"/> instance.</param>
 public JsonBodyDeserializer(INancyEnvironment environment)
 {
     this.configuration = environment.GetValue<JsonConfiguration>();
 }
예제 #5
0
 /// <summary>
 /// Creates an instance of <see cref="JavaScriptSerializer"/>
 /// </summary>
 /// <param name="configuration">A <see cref="JsonConfiguration"/> object to configure the serializer</param>
 public JavaScriptSerializer(JsonConfiguration configuration)
 {
     this.serializerStrategy = new NancySerializationStrategy(configuration.RetainCasing);
 }