- PR -

メソッドの実行方法は?

1
投稿者投稿内容
damepg
大ベテラン
会議室デビュー日: 2003/03/19
投稿数: 229
お住まい・勤務地: 東京都内
投稿日時: 2004-04-07 15:12
こんにちは!
C#によるWindowsアプリを開発しています。

今、XMLファイルにメソッド名(cMethod1、cMethod2等)が記述されています。
また、これらはCUtilityというクラスの中でstatic Methodとして宣言されています。

これらのメソッド名をXMLより取得して
動的にCUtility.Method1()を実行させたいのですが
その方法を教えてください。

XMLファイルの中身
<CONDITION>
<METH1>cMethod1</METH1>
<METH2>cMethod2</METH2>
</CONDITION>

処理

htbl = htblCon["CONDITION"]; // ハッシュテーブルhtblConにメソッド一覧が格納されています。
IDictionaryEnumerator my = htbl.GetEnumerator();
while ( my.MoveNext() ){
CUtility.(my.Value.Tostring()); // このように動的にメソッドを実行したい
}
よろしくお願いします。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-04-07 15:39
 System.Reflection名前空間の下を使えば、何とかなるんじゃないかなぁ?Assemblyクラスの説明に、GetMethodというメソッドが出ているし。。。


ところで、こっちはどうなりました?お役に立てましたか?
ぼると
常連さん
会議室デビュー日: 2003/04/09
投稿数: 42
投稿日時: 2004-04-07 16:37
この質問、定期的に見る気がするんですが、なぜ文字列から呼ぶメソッドの選択
をしたいんでしょう?
どう考えても設計ミスのような気がするんですが。
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-04-07 17:59
諸農です。

引用:

動的にCUtility.Method1()を実行させたいのですが
その方法を教えてください。



方法という事なので。

オブジェクトのインスタンスは既に取得済みであるなら、
そのオブジェクトのタイプ情報から直接指定のメソッド情
報を取り出すか、メソッド一覧を取り出して名前の一致す
るものを探し出してオブジェクトインスタンスを引数にし
てメソッド情報インスタンスからメソッドを呼び出します。
パラメータが必要な場合は、別途パラメータ情報も取得す
る必要がありますね。


_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
1

スキルアップ/キャリアアップ(JOB@IT)