microsoft / Trill

Trill is a single-node query processor for temporal or streaming data.
MIT License
1.25k stars 133 forks source link

ReflectionSchemaBuilder ignores knownTypes of the nested type #153

Closed Poytr1 closed 3 years ago

Poytr1 commented 3 years ago

Repro code:

public interface IFunctionBinding
{
}

[DataContract]
public class AFunctionBinding : IFunctionBinding
{
    [DataMember]
    public int Number { get; set; }
}

[DataContract]
[KnownType(typeof(AFunctionBinding))]
public class FunctionDefinition
{
    [DataMember]
    public IFunctionBinding FunctionBinding { get; set; }
}

var serializer = StreamSerializer.Create<FunctionDefinition[]>();

It throws Exception: System.Runtime.Serialization.SerializationException: Could not find any matching known type for 'SimpleTesting.IFunctionBinding'.