字典表调用对象

DictTable CallObject

我正在使用以下代码动态执行对可能存在或不存在的 table 方法的调用。

但是,它总是 returns 执行代码时出错:myTableName table 没有方法 'myUpdateMethod'。

    Dicttable         dictTable;
    Common            common;
    ExecutePermission perm;

    perm = new ExecutePermission();
    dictTable= new DictTable(tableName2Id('myTableName'));
    if (dictTable != null)
    {
        common = dictTable.makeRecord();

        // Grants permission to execute the
        // DictTable.callObject method. DictTable.callObject runs
        // under code access security.
        perm.assert();
        dictTable.callObject('myUpdateMethod', common);
    }

    // Close the code access permission scope.
    CodeAccessPermission::revertAssert();

这些对象在不同的​​模型中,但为了好玩,我尝试在两个模型之间进行参考,看看它是否有所不同。它没有解决问题。

谢谢

将被调用的方法从静态更改为非静态。

开始工作,然后找到等效的 callStatic()。

这是我最终用于非静态方法的代码,它没有参数。

    Dicttable         dictTable;
    Common            common;
    ExecutePermission perm;

    perm = new ExecutePermission();
    dictTable= new DictTable(tableName2Id('MyTableName'));
    if (dictTable != null)
    {
        common = dictTable.makeRecord();
        // Grants permissions
        perm.assert();
        if (dictTable.doesMethodExist('myMethodName'))
        {
            dictTable.callObject('myMethodName', common);
        }
    }

    // Close the code access permission scope.
    CodeAccessPermission::revertAssert();