Ejemplo n.º 1
0
        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));
                }
            }
        }
Ejemplo n.º 2
0
 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);
 }