private IEnumerable<DynamicMemberDescriptor> CreatePlotItemMembers(DynamicMemberDescriptor byItemMember, DynamicMemberSpecification spec, PSObject ps) { List<DynamicMemberDescriptor> list = new List<DynamicMemberDescriptor>(); bool acrossSpecifierAdded = false; bool bySpecifierAdded = false; if (null != spec.AcrossSpecifier) { acrossSpecifierAdded = ps.SafeAddDynamicProperty(spec.AcrossSpecifier); } if (null != byItemMember) { bySpecifierAdded = ps.SafeAddDynamicProperty(byItemMember.MemberInfo); } foreach (var plot in spec.PlotItems) { foreach (var memberDescriptor in GetMemberDescriptorForSpecItem(spec, ps, plot, byItemMember)) { list.Add(memberDescriptor); } } if (bySpecifierAdded) { ps.Properties.Remove(byItemMember.MemberInfo.Name); } if (acrossSpecifierAdded) { ps.Properties.Remove(spec.AcrossSpecifier.Name); } return list; }