DictTable CallObject。Iを動的にあってもなくてもよいテーブルメソッドの呼び出しを実行するために、次のコードを使用してい
しかし、それは常に実行エラーコードを返します。myTableNameテーブルはメソッドを持っていない「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();
これらのオブジェクトは、別のモデルであるが、ちょうど蹴りのために私はそれが違いを作ったかどうかを確認するために、2つのモデル間の参照を作ってみました。それは問題を解決しませんでした。
おかげ
は、あなたのメソッドの引数がありますか? callobject()に追加のパラメータは指定しません。したがって、パラメータなしでmyUpdateMethod()を検索します。 --- はアドバイス: 1. SysDictTable代わりDictの表 2. SysDictTable.isMethodActualを()オブジェクト名の文字列を使用しないでください方法のpresense 3をチェックする - それは、相互参照を失います。使用tablenum(myTablename)の代わりにtableName2Id( 'myTableName')とmethodstr(myUpdateMethod)を使用する代わりに、 'myUpdateMethod'。 – mazzy