/// <summary>
        /// Tries the invoke member.
        /// </summary>
        /// <param name="binder">The binder.</param>
        /// <param name="args">The arguments.</param>
        /// <param name="result">The result.</param>
        /// <returns>bool.</returns>
        public override bool TryInvokeMember(InvokeMemberBinder binder, object?[]?args, out object?result)
        {
            var typeArgs       = binder.GetGenericTypeParameters();
            var methodAccessor = new DynamicMethodAccessor(this.Obj, binder.Name, this.UseCache);

            return(methodAccessor.TryInvokeInternal(args, typeArgs, out result));
        }