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

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

Metric класс содержит элементы данных:

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

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

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

Когда выдается мойПоказывается метрический объект после вывода.

Dimension : {Dim1,Dim2}
Count     : 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 Ответ

0 голосов
/ 31 января 2019

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

do_your_thing | ConvertTo-Json

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

...