private static PocoFrameRing ToPoco(this IFrameRing source, ConversionContext context) { if (source == null) return null; var poco = source as PocoFrameRing; if ((poco != null) || context.GetOrCreate(source, () => new PocoFrameRing(), out poco)) return poco; source.CopyTo(poco, nameof(IFrameRing.RingItems)); poco.PocoRingItems = source.RingItems.Select(entry => ToPoco(entry, context)).ToList(); return poco; }