public static CallTargetState BeginMethod <TIntegration, TTarget>(TTarget instance)
        {
            if (IntegrationOptions <TIntegration, TTarget> .IsIntegrationEnabled)
            {
                return(BeginMethodHandler <TIntegration, TTarget> .Invoke(instance));
            }

            return(CallTargetState.GetDefault());
        }
        public static CallTargetState BeginMethod <TIntegration, TTarget, TArg1, TArg2, TArg3>(TTarget instance, TArg1 arg1, TArg2 arg2, TArg3 arg3)
        {
            if (IntegrationOptions <TIntegration, TTarget> .IsIntegrationEnabled)
            {
                return(BeginMethodHandler <TIntegration, TTarget, TArg1, TArg2, TArg3> .Invoke(instance, arg1, arg2, arg3));
            }

            return(CallTargetState.GetDefault());
        }
        public static CallTargetState BeginMethod <TIntegration, TTarget, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8>(TTarget instance, TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5, TArg6 arg6, TArg7 arg7, TArg8 arg8)
        {
            if (IntegrationOptions <TIntegration, TTarget> .IsIntegrationEnabled)
            {
                return(BeginMethodHandler <TIntegration, TTarget, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8> .Invoke(instance, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8));
            }

            return(CallTargetState.GetDefault());
        }
        public static CallTargetState BeginMethod <TIntegration, TTarget, TArg1, TArg2, TArg3>(TTarget instance, TArg1 arg1, TArg2 arg2, TArg3 arg3)
        {
            DebugLog($"ProfilerOK: BeginMethod<{typeof(TIntegration)}, {typeof(TTarget)}, {typeof(TArg1)}, {typeof(TArg2)}, {typeof(TArg3)}>({instance}, {arg1}, {arg2}, {arg3})");

            if (IntegrationOptions <TIntegration, TTarget> .IsIntegrationEnabled)
            {
                return(BeginMethodHandler <TIntegration, TTarget, TArg1, TArg2, TArg3> .Invoke(instance, arg1, arg2, arg3));
            }

            return(CallTargetState.GetDefault());
        }
        public static CallTargetState BeginMethod <TIntegration, TTarget>(TTarget instance)
        {
            DebugLog($"ProfilerOK: BeginMethod<{typeof(TIntegration)}, {typeof(TTarget)}>({instance})");

            if (IntegrationOptions <TIntegration, TTarget> .IsIntegrationEnabled)
            {
                return(BeginMethodHandler <TIntegration, TTarget> .Invoke(instance));
            }

            return(CallTargetState.GetDefault());
        }
        public static CallTargetState BeginMethod <TIntegration, TTarget, TArg1, TArg2>(TTarget instance, TArg1 arg1, TArg2 arg2)
        {
            if (IntegrationOptions <TIntegration, TTarget> .IsIntegrationEnabled)
            {
                IntegrationOptions <TIntegration, TTarget> .RecordTelemetry();

                return(BeginMethodHandler <TIntegration, TTarget, TArg1, TArg2> .Invoke(instance, ref arg1, ref arg2));
            }

            return(CallTargetState.GetDefault());
        }
        public static CallTargetState BeginMethod <TIntegration, TTarget, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8>(TTarget instance, ref TArg1 arg1, ref TArg2 arg2, ref TArg3 arg3, ref TArg4 arg4, ref TArg5 arg5, ref TArg6 arg6, ref TArg7 arg7, ref TArg8 arg8)
        {
            if (IntegrationOptions <TIntegration, TTarget> .IsIntegrationEnabled)
            {
                IntegrationOptions <TIntegration, TTarget> .RecordTelemetry();

                return(BeginMethodHandler <TIntegration, TTarget, TArg1, TArg2, TArg3, TArg4, TArg5, TArg6, TArg7, TArg8> .Invoke(instance, ref arg1, ref arg2, ref arg3, ref arg4, ref arg5, ref arg6, ref arg7, ref arg8));
            }

            return(CallTargetState.GetDefault());
        }