public void Should_serialize_DateTimeOffset_as_property_when_using_string_formatting2() { var mapperSettings = new DynamicObjectMapperSettings { FormatNativeTypesAsString = true }; var mapper = new DynamicObjectMapper(mapperSettings); var dto1 = new DateTimeOffset(2, 1, 2, 10, 0, 0, 300, new TimeSpan(1, 30, 0)); var dtoDynamic = mapper.MapObject(dto1); var dto2 = mapper.Map <DateTimeOffset>(dtoDynamic); dto2.ShouldBe(dto1); }
public void Should_serialize_DateTimeOffset_as_property_when_using_string_formatting2() { Skip.If(this.TestIs <JsonSerializer>(), "DateTimeOffset not supported by JsonSerializer"); var mapperSettings = new DynamicObjectMapperSettings { FormatNativeTypesAsString = true }; var mapper = new DynamicObjectMapper(mapperSettings); var dto1 = new DateTimeOffset(2, 1, 2, 10, 0, 0, 300, new TimeSpan(1, 30, 0)); var dtoDynamic = mapper.MapObject(dto1); var dto2 = mapper.Map <DateTimeOffset>(dtoDynamic); dto2.ShouldBe(dto1); }
public void Should_map_nullable_sbyte_array_to_string_array_according_to_mapper_settings() { var obj = CreateObject(new sbyte?[] { 1, null, -128 }); var mapperSettings = new DynamicObjectMapperSettings { FormatNativeTypesAsString = true }; var dynamicObject = new DynamicObjectMapper(mapperSettings).MapObject(obj); var items = dynamicObject["Items"]; var array = items.ShouldBeOfType <string[]>(); array[0].ShouldBe("1"); array[1].ShouldBeNull(); array[2].ShouldBe("-128"); }
private TResult Serialize <TResult, TSource>(TSource value, bool setTypeFromGenericArgument = true, bool formatValuesAsStrings = false) { var settings = new DynamicObjectMapperSettings { FormatNativeTypesAsString = formatValuesAsStrings }; var dynamicObject = new DynamicObjectMapper(settings).MapObject(value); if (dynamicObject is not null && setTypeFromGenericArgument) { dynamicObject.Type = new TypeInfo(typeof(TSource), false, false); } var serializedDynamicObject = _serialize(dynamicObject); var resurectedValue = new DynamicObjectMapper().Map <TResult>(serializedDynamicObject); return(resurectedValue); }