Closed
Description
Merging of #649 introduced regressions in the mapping of interfaces. A minimal test:
[TestMethod]
public void MappingToInterface_Broken()
{
SampleInterfaceCls source = new SampleInterfaceCls
{
ActivityData = new SampleActivityData
{
Data = new SampleActivityParsedData
{
Steps = new List<string> { "A", "B", "C" }
}
}
};
SampleInterfaceCls dest = source.Adapt<SampleInterfaceCls>(); // works pre #649, crashes after
}
public class SampleInterfaceCls
{
[Newtonsoft.Json.JsonIgnore]
public IActivityData? ActivityData { get; set; }
public SampleInterfaceCls()
{
}
public SampleInterfaceCls(IActivityData data)
{
SetActivityData(data);
}
public void SetActivityData(IActivityData data)
{
ActivityData = data;
}
}
public class SampleActivityData : IActivityData
{
public SampleActivityParsedData Data { get; set; }
}
public class SampleActivityParsedData
{
public List<string> Steps { get; set; } = new List<string>();
}