public void Simple_Deserialize() { var surrogate = new SurrogateTypeDescriber(false); surrogate.AddSurrogateType(typeof(_Simple_Real).GetTypeInfo(), typeof(_Simple_Surrogate).GetTypeInfo()); // maps! { var res = surrogate.EnumerateMembersToDeserialize(typeof(_Simple_Real).GetTypeInfo()); Assert.Collection( res, a => { Assert.Null(a.Field); Assert.Equal(DeserializableMember.GetDefaultParser(typeof(string).GetTypeInfo()), a.Parser); Assert.Equal("bar", a.Name); Assert.Equal(typeof(_Simple_Real).GetProperty(nameof(_Simple_Real.Foo)).SetMethod, a.Setter); Assert.False(a.IsRequired); } ); } // doesn't map { var res = surrogate.EnumerateMembersToDeserialize(typeof(_Simple_Surrogate).GetTypeInfo()); Assert.Collection( res, a => { Assert.Null(a.Field); Assert.Equal(DeserializableMember.GetDefaultParser(typeof(string).GetTypeInfo()), a.Parser); Assert.Equal("bar", a.Name); Assert.Equal(typeof(_Simple_Surrogate).GetProperty(nameof(_Simple_Surrogate.Foo)).SetMethod, a.Setter); Assert.False(a.IsRequired); } ); } }
public IEnumerable <DeserializableMember> EnumerateMembersToDeserialize(TypeInfo forType) { var foo = DeserializableMember.ForProperty(typeof(_BridgeDelegate).GetProperty(nameof(_BridgeDelegate.Foo))); return(new[] { foo }); }