public static ParametersSnapshot GetParameterSnapshotWithInnerObjects(this IParametrizedObject @this, string parentFieldName)
        {
            ParametersSnapshot result = @this.GetParametersSnapshot(parentFieldName);

            result.InnerSnapshots = @this
                                    .GetInnerParametrizedObjects()
                                    .Select(io => GetParameterSnapshotWithInnerObjects(io.ParametrizedObject, io.ParentFieldName))
                                    .ToArray();

            return(result);
        }
 public static ParametersSnapshot GetParametersSnapshot(this IParametrizedObject @this)
 {
     return(@this.GetParametersSnapshot(string.Empty));
 }