public void CanDoCustomTypeResolveByResolvingToDifferentName()
        {
            // arrange
            serializer.AddNameResolver(d =>
            {
                if (d == typeof(SomeMessage))
                {
                    return(new TypeDescriptor("Rebus.Tests",
                                              "Rebus.Tests.Serialization.Json.TestJsonMessageSerializer+SomeDucktypinglyCompatibleMessage"));
                }
                return(null);
            });

            // act
            var message = RoundtripMessage(new SomeMessage {
                SomeField = "hello!"
            });

            // assert
            message.ShouldBeOfType <SomeDucktypinglyCompatibleMessage>();
            ((SomeDucktypinglyCompatibleMessage)message).SomeField.ShouldBe("hello!");
        }
Exemple #2
0
 /// <summary>
 /// Adds a function that will determine how a given type is turned into a <see cref="TypeDescriptor"/>.
 /// Return null if the function has no opinion about this particular type, allowing other functions and
 /// ultimately the default JSON serializer's opinion to be used.
 /// </summary>
 public JsonSerializationOptions AddNameResolver(Func <Type, TypeDescriptor> resolve)
 {
     jsonMessageSerializer.AddNameResolver(resolve);
     return(this);
 }