public override ICollection <Type> GetKnownTypes([Optional] Container container) { Console.WriteLine("List Init Expression Node KnownType"); var totalTypes = base.GetKnownTypes(container).Concat(new [] { this.GetType(), Initializers?.GetType() }) .Concat(NewExpression?.GetKnownTypes(container) ?? Enumerable.Empty <Type>()) .Concat(Initializers?.SelectMany(e => e?.GetKnownTypes(container)).ToList() ?? Enumerable.Empty <Type>()) .ToList(); return(totalTypes); }