public void RoundtripAliasOverride() { var writer = new StringWriter(); var input = new NameConvention { AliasTest = "Fourth" }; var attribute = new YamlMemberAttribute(); attribute.Alias = "fourthOverride"; var serializer = new SerializerBuilder() .WithAttributeOverride <NameConvention>(nc => nc.AliasTest, attribute) .Build(); serializer.Serialize(writer, input, input.GetType()); var text = writer.ToString(); // Todo: use RegEx once FluentAssertions 2.2 is released text.TrimEnd('\r', '\n').Should().Be("fourthOverride: Fourth"); DeserializerBuilder.WithAttributeOverride <NameConvention>(n => n.AliasTest, attribute); var output = Deserializer.Deserialize <NameConvention>(UsingReaderFor(text)); output.AliasTest.Should().Be(input.AliasTest); }
public static DeserializerBuilder WithAttributeOverride <TClass>(this DeserializerBuilder builder, Expression <Func <TClass, object> > propertyAccessor, Attribute attribute) { return(builder.WithAttributeOverride(typeof(TClass), propertyAccessor.AsProperty().Name, attribute)); }