public string GetDisplayName(MethodInfo methodInfo, object[] data)
        {
            if (DisplayMethod == null)
            {
                if (string.IsNullOrEmpty(DisplayMethodName))
                {
                    return(null);
                }

                DisplayMethod = MethodClass.GetMethod(DisplayMethodName, BindingFlags.Static
                                                      | BindingFlags.Public | BindingFlags.NonPublic);
                if (DisplayMethodName == null)
                {
                    throw new InvalidOperationException($"could not resolve test data display method:"
                                                        + $" class=[{MethodClass.FullName}]"
                                                        + $" method=[{DisplayMethodName}]");
                }
            }
            if (TestMethod == null)
            {
                TestMethod = methodInfo;
            }

            object[] methodParams = null;
            var      paramInfos   = DisplayMethod.GetParameters();
            var      paramLen     = paramInfos.Length;

            if (paramLen == 2 && paramInfos[1].ParameterType == typeof(object[]))
            {
                methodParams = new object[] { this, data };
            }
            else if (paramLen > 1)
            {
                methodParams    = new object[data.Length + 1];
                methodParams[0] = this;
                Array.Copy(data, 0, methodParams, 1, data.Length);
            }
            else if (paramLen > 0)
            {
                methodParams = new object[] { this };
            }

            return((string)DisplayMethod.Invoke(null, methodParams));
        }