如何在 PowerShell cmdlet 中显示一个 属性 本身就是一个复杂对象的对象

How to display an object in PowerShell cmdlet whose one property itself is an complex object

我有一个输出用户定义对象的 cmdlet Metric

Metric class 有数据成员:

  1. Count - 类型 int16
  2. Dimension - 类型 List<MetricDimension>

MetricDimension 是具有数据成员的用户定义对象:

  1. Name - 类型 String
  2. OperatorProperty - 类型 String
  3. Values - 类型 List<String>

当我输出 Metric 对象时,显示以下输出。

维度:{Dim1,Dim2}
计数 : 2

我想要的是它应该显示对象 (MetricDimension) 的完整详细信息,包括 OperatorPropertyValues 列表,而不仅仅是 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; }
}

标准输出很少会深入到您的深层对象图中以令人愉悦地显示。您可以转换为 JSON 以查看全部内容:

do_your_thing | ConvertTo-Json

注意循环引用。您可以使用 -Depth 参数限制它下降的深度。