- ベストアンサー
C#にてクラス・メソッドを文字列で指定する方法
- C#で、文字列でクラス名とメソッド名を指定してインスタンス生成とメソッド起動を行う方法を教えてください。
- 質問者はC#で文字列で指定したクラス名とメソッド名を用いてインスタンス生成とメソッド起動を行いたいと考えています。
- メソッドの引数は常に「ref strdata」の固定であるという前提で構わないそうです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 リフレクションで実行します。以下URLが分かりやすいです。 http://d.hatena.ne.jp/s-kita/20090201/1233473013 public class csTest { public csTest() { } public void msTest(ref String str) { } } private void Call(Type type) { //コンストラクタを取り出す System.Reflection.ConstructorInfo ci = type.GetConstructor(new Type[0]); //コンストラクタの呼び出し object instance = ci.Invoke(new object[0]); //メソッドを取り出す System.Reflection.MethodInfo mi = type.GetMethod("msTest"); //メソッドに渡すパラメータ String str = "hello"; //メソッドの呼び出し mi.Invoke(instance, new object[1] { str }); } private void Form1_Load(object sender, EventArgs e) { Call(typeof(csTest)); }
お礼
ご回答、ありがとうございます。 おかげさまで、希望していた動作を完全に実装することができました! URL先の内容も分かりやすく、参考になりました!