private void BuildReader() { _Reader = new PropertyReader(); if (Property == null || Property.Length == 0) { return; } for (var i = 0; i < Property.Length; i++) { if (Property[i] is Hashtable propertyExpression) { _TableBuilder.Header(propertyExpression); if (propertyExpression["Expression"] is ScriptBlock expression) { var propertyName = GetPropertyName(propertyExpression); _Reader.Add(propertyName, (PSObject value) => ReadPropertyByExpression(value, expression)); } else { var propertyName = propertyExpression["Expression"].ToString(); _Reader.Add(propertyName, (PSObject value) => ReadPropertyByName(value, propertyName)); } } else { var propertyName = Property[i].ToString(); _TableBuilder.Header(propertyName); _Reader.Add(propertyName, (PSObject value) => ReadPropertyByName(value, propertyName)); } } }
protected override void ProcessRecord() { if (Property == null || Property.Length == 0) { // Extract out the header column names based on the resulting objects foreach (var property in InputObject.Properties) { var propertyName = property.Name.ToString(); _TableBuilder.Header(propertyName); _Reader.Add(propertyName, (PSObject value) => ReadPropertyByName(value, propertyName)); } } _RowData.Add(InputObject); }