私が作成しているWindowsフォームアプリケーションに問題があります。アプリケーションは統合テストアプリケーションであると考えられます。基本的には、私のクラスの一つで多くのWebサービスを利用するメソッドをテストすることになっています。私はリフレクション経由でテストしたいクラスのメソッドをロードしていますが、このようなので、やっている:これは、Webサービスと場所をテストするために作成されている、そのクラスのメソッドのリストを返すリストボックスで選択したメソッドを呼び出す
private List<string> GetMethods(Type type)
{
return (from method in type.GetMethods() where method.IsPublic &&
method.ReturnType == typeof(void) select method.Name).ToList();
}
ユーザーが好きなだけ多くのメソッドを選択できるListBoxに配置します。私の混乱はここに来る。私がしたいのは、ユーザーが選択したメソッドを取得し、対応するメソッドXを実行することです(フォームにメソッドを実行する回数を入力するためのテキストボックスがあります)。私はリフレクションを通して得たメソッドの名前に基づいてこれらのメソッドを実行する方法を理解できません。私はこのような何かを試してみたが、私はそれが適切ではないことを知っている:これもコンパイルされません
private void RunMethods(Type type)
{
var tester = new ClassToTest();
foreach(var item in lstMethodList.SelectedItems)
{
foreach(var method in type.GetMethods())
{
if(String.Equals(item.ToString(), method.Name))
{
ThreadStart ts = new ThreadStart(method.Name);
Thread thread1 = new Thread(ts);
thread1.Start();
}
}
}
}
、ThreadStartはパラメータとしてメソッド名を必要とします。これが可能な方法はありますか?論理的に間違っているかもしれませんが、実行する必要のあるメソッドごとにスレッドを作成して、そのメソッドを何度も実行したいと考えています。これは、いくつかの負荷テストと一緒に統合テストを行い、Webサービスが何を処理できるかを確認する方法と考えられています。
グーグルが助けになりませんでしたか? http://www.codeproject.com/KB/cs/C__Reflection_Tutorial.aspx – Zenwalker
静的メソッドまたはインスタンスメソッドと呼ばれるメソッドはありますか? –
これは私が呼び出そうとしているすべてのインスタンスメソッドです。メソッドを取得しているクラスは、テストするクラスを_テストするクラスなので、私は間違っていると思うようになり始めています。おそらく、私はメソッドを取得する必要があります。クラス自体はテストする必要があります。 – Zajn