Как отобразить объект в командлете PowerShell, одно свойство которого является сложным объектом

У меня есть командлет, который выводит пользовательский объект Metric,

Metric класс имеет данные-члены:

  1. Count - типа int16
  2. Dimension - типа List<MetricDimension>

MetricDimension пользовательский объект с данными-членами:

  1. Name - типа String
  2. OperatorProperty - типа String
  3. Values - типа List<String>

Когда я выводю свой объект Metric, показывается следующий вывод.

Размер: {Dim1,Dim2}
Количество: 2

Я хочу, чтобы он отображал полную информацию об объекте (MetricDimension) в том числе OperatorProperty & Values список не только Name,

Можно ли отобразить каждое свойство объекта измерений?

// Summary:
//     Specifies a metric dimension.
public class MetricDimension
{
    public MetricDimension();
    public MetricDimension(string name, string operatorProperty, IList<string> values);

    [JsonProperty(PropertyName = "name")]
    public string Name { get; set; }

    [JsonProperty(PropertyName = "operator")]
    public string OperatorProperty { get; set; }

    [JsonProperty(PropertyName = "values")]
    public IList<string> Values { get; set; }

    public virtual void Validate();
}

public class Metric
{
    public Metric();
    public Metric(int16 count, MetricDimension dimension);

    [JsonProperty(PropertyName = "count")]
    public int16 Count { get; set; }

    [JsonProperty(PropertyName = "dimension")]
    public IList<MetricDimension> Dimension{ get; set; }
}

1 ответ

Решение

Стандартный вывод редко будет детализирован в вашем глубоком графике объектов для приятного отображения. Вы можете конвертировать в JSON, чтобы увидеть все это:

do_your_thing | ConvertTo-Json

Остерегайтесь круговых ссылок. Вы можете ограничить глубину до -Depth параметр.

Другие вопросы по тегам