- PR -

動的にメソッドを呼び出したい。

1
投稿者投稿内容
どか
会議室デビュー日: 2004/07/17
投稿数: 14
投稿日時: 2004-07-27 14:58
いつもお世話になっております。

メソッドを文字列で指定し、呼び出す方法をご存知の方
ご教授願います。

JAVA で言うClassForNameをイメージしております。
かずくん
ぬし
会議室デビュー日: 2003/01/08
投稿数: 759
お住まい・勤務地: 太陽系第三惑星
投稿日時: 2004-07-27 15:11
リフレクション, System.Reflectionあたりをキーワードに検索すれば、幸せになれそうです。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-07-27 15:14
ご参考:
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=11900&forum=7
じゅん
会議室デビュー日: 2004/07/27
投稿数: 1
投稿日時: 2004-07-27 15:45
JAVAのClassForNameをよく存じておりませんが、少しばかり調べてみたところ
どうもReflectionで代用できるのではないでしょうか?

参考までにサンプルを記載致します。
戻り値の型は任意のクラス又はインターフェイスに置換えて頂いた方がよろしいかと思います。
※その際はキャストして下さい。

なお、ReflectionでMethodinfoを取得し、任意のメソッドを呼び出す事も可能です。

===================================================================

private object GetXXXXInstance( string dllPath, string className )
{
    System.Reflection.Assembly asm = System.Reflection.Assembly.LoadFrom( dllPath );

    foreach( Type type in asm.GetTypes() )
    {
        if( type.Name == className )
        {
            return( Activator.CreateInstance( type ) );
        }
    }

    return( null );
}
どか
会議室デビュー日: 2004/07/17
投稿数: 14
投稿日時: 2004-07-27 18:17
返答ありがとうございました。
解決いたしました。

#過去ログに記述がありましたね。。。
#失礼いたしました。。
1

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